2017-09-12 11 views
-4

こんにちは、私はいくつかのインターフェイスを習得しようとしています。私はそれについての基本的な知識を持っています、それはクラスのための契約です。私はちょっとデータタイプとしてInterfaceについて少し混乱しています。C#Interface as DataType

質問: インターフェイスをデータ型として使用する目的を教えてください。

Ex。

IEnumerable Folders {get;} 

又は

IComparable Compare {get;} 

ImはIEnumerableをもインタフェースれる正しい場合。 値のタイプはどこに保存されていますか?これは、データ・タイプは、インタフェースを実装するクラスのオブジェクトを参照することができることを意味

Thxを

+0

これはあなたに良いアイデアを与えるでしょう - https://stackoverflow.com/questions/2151959/using-interface-variables – jjj

答えて

3

IEnumerable thing = new List();

IEnumerable thing = new Collection();

IEnumerable thing = new HashSet();もいずれの場合も

ワークス作品、あなたが実際にあなたのオブジェクトに割り当てられている正確な型を知っている必要はありませんことをやります、あなたは契約を実装する任意のタイプを望みます。

たとえば、すべてのIEnumeratoはあなたがforeach

foreach (var elem in thing)がものは何でもタイプ動作します使用できるようにするGetEnumerator()を実装し、それだけのIEnumeratorを実装する必要があります。