ジェネリックスの制約条件について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
シャープ
記事: 19
登録日時: 11年前

ジェネリックスの制約条件について

#1

投稿記事 by シャープ » 11年前

お久しぶりです。
現在C#のジェネリックスについて学習し始めたところなのですが、
制約条件について質問させていただきたいと思います。

http://ufcpp.net/study/csharp/sp2_generics.html#where
こちらのサイトを参考にさせていただいて学習しているのですが、
制約条件についてIComparableやその他のものがあることはわかるのですが
たとえば「+=」ができること、計算ができる値であること、というような
制約条件をつけるときはどうしたらよいのでしょうか。
できれば、その直接的な答えというよりは「このように調べればよい」
というようなご回答を頂ければ大変ありがたく存じます。


よろしくお願いいたします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: ジェネリックスの制約条件について

#2

投稿記事 by h2so5 » 11年前

独自のインターフェースを作ってそれを制約条件に指定すれば良いと思います。

シャープ
記事: 19
登録日時: 11年前

Re: ジェネリックスの制約条件について

#3

投稿記事 by シャープ » 11年前

「計算ができるような値」であることを定義するための制約条件を作成できる
インターフェイスや基底クラスなどは存在しないということでよろしいでしょうか?
申し訳ございませんが当方学習中の身であるため、詳細なご説明を頂ければと存じます。
なにとぞよろしくお願いいたします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: ジェネリックスの制約条件について

#4

投稿記事 by h2so5 » 11年前

少なくともBuilt-inのインターフェースに演算子のオーバーロードを指定するようなものは存在しないということです。
http://msdn.microsoft.com/ja-jp/library/System.aspx

(シャープです)

Re: ジェネリックスの制約条件について

#5

投稿記事 by (シャープです) » 11年前

了解いたしました。ご回答を有難うございました。
指定していただいたURLを確認しましたが、こちらに該当するような
機能がない場合はジェネリックスの制約条件としても存在しない
ということでよろしいでしょうか。
また、ジェネリックスの制約条件を探そうとするときはこの中から探せば良いということで
まちがいありませんでしょうか。

加えて、与えられた値を計算して返すようなジェネリックスメソッドを作成する方法があればご教授下さい。

何卒よろしくお願いいたします。

アバター
バグ
記事: 130
登録日時: 14年前
住所: 愛媛県
連絡を取る:

Re: ジェネリックスの制約条件について

#6

投稿記事 by バグ » 11年前

私も似たような事で不便を感じて色々検索したことがありました。
おそらく、こんな事をしたいんじゃないかなぁ・・・というのを紹介しているとこがありましたので紹介しておきます。

http://ufcpp.net/study/csharp/sm_genericop.html
http://ap.atmarkit.co.jp/bbs/core/fdotnet/25496?page=1

正直、C++と比較するとかなり面倒くさく感じますが、言語仕様なので仕方ないのかな・・・(^_^;)

シャープ
記事: 19
登録日時: 11年前

Re: ジェネリックスの制約条件について

#7

投稿記事 by シャープ » 11年前

ご回答をありがとうございます。
バグ 様のご回答によって、直接の答えだけでなく自分が今やろうとしていることのイメージすらもつかめたように感じます。
C#で四則演算のあるジェネリックスメソッドを作成しようとすることは、当然行われるべきことではなくどちらかというと発展的な操作なのだというように理解いたしました。
以上のご回答をもちましてこのトピックは解決とさせていただきます。
何か私の思い違いなどございましたらお手数ですがご指摘いただければと思います。

ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る