2016-08-31 6 views

答えて

1

文字列配列がインスタンスです。そのインタフェースを実装するだけです。

2

いいえ使用しているnew[]表現は、IEnumerable<string>というインタフェースを実装するクラスstring[]のインスタンスを作成します。

1

=の右側の式はIEnumerable<string>を実装する文字列配列string[]のインスタンスを作成し、インスタンスは、そのタイプIEnumerable<string>あるmyStrという名前の変数に割り当てられています。インスタンスのタイプはstring[]ですが、IEnumerable<string>のように動作します。

0

あなたはインターフェイスリファレンスに文字列配列を割り当てていませんでした。これはインターフェイスのインスタンスではなく、実際にはインターフェイスのインスタンスを初期化できません。

以下のコードはmyStrの実際のタイプを出力します。側として

dotnet fiddle

IEnumerable<string> myStr = new[]{"am", "I", "a", "Instance", "of","Interface", "?"}; 
Console.WriteLine(myStr.GetType()); 

は、あなたがそのインターフェイスのリファレンスへのインタフェースを実装するクラスのインスタンスを割り当てることができますし、それは我々が polymorphismと呼んでいます。

関連する問題