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로 부르는 것이다.

관련 문제