C# 接口的状态?这个代码是如何工作的?
接口无法创建实例。 但是这个代码是有用的C# 接口的状态?这个代码是如何工作的?,c#,C#,接口无法创建实例。 但是这个代码是有用的 IEnumerable<string> myStr = new[]{"am", "I", "a", "Instance", "of","Interface", "?"}; IEnumerable myStr=new[]{“am”、“I”、“a”、“Instance”、“of”、“Interface”、“?”}; 这段代码的意思不是创建实例的接口吗? 它是如何工作的?字符串数组就是实例。恰好实现了该接口。字符串数组就是实例。恰好实现了该接口
IEnumerable<string> myStr = new[]{"am", "I", "a", "Instance", "of","Interface", "?"};
IEnumerable myStr=new[]{“am”、“I”、“a”、“Instance”、“of”、“Interface”、“?”};
这段代码的意思不是创建实例的接口吗?
它是如何工作的?字符串数组就是实例。恰好实现了该接口。字符串数组就是实例。恰好实现了该接口。否。您正在使用的
新[]
表达式创建类字符串[]
的实例,该类实现了接口IEnumerable
否。您正在使用的new[]
表达式创建类string[]
的实例,该类实现接口IEnumerable
右侧表达式=
创建字符串数组string[]
的实例,该实例实现IEnumerable
,并将该实例分配给名为myStr
的变量,其类型为IEnumerable
。因此,实例的类型是string[]
,但其行为类似于IEnumerable
=
的右侧表达式创建字符串数组string[]
的实例,该实例实现了IEnumerable
,并将实例分配给名为myStr
的变量,其类型为IEnumerable
。因此,实例的类型是string[]
,但它的行为方式是IEnumerable
不,您刚刚将字符串数组分配给接口引用,它不是接口的实例,事实上,我们无法初始化接口的实例
下面的代码将打印myStr的实际类型
IEnumerable<string> myStr = new[]{"am", "I", "a", "Instance", "of","Interface", "?"};
Console.WriteLine(myStr.GetType());
IEnumerable myStr=new[]{“am”、“I”、“a”、“Instance”、“of”、“Interface”、“?”};
WriteLine(myStr.GetType());
作为旁注,您可以将实现该接口的类的任何实例分配给该接口的引用,这就是我们所称的不,您刚刚将字符串数组分配给接口引用,它不是接口的实例,事实上,我们无法初始化接口的实例 下面的代码将打印myStr的实际类型
IEnumerable<string> myStr = new[]{"am", "I", "a", "Instance", "of","Interface", "?"};
Console.WriteLine(myStr.GetType());
IEnumerable myStr=new[]{“am”、“I”、“a”、“Instance”、“of”、“Interface”、“?”};
WriteLine(myStr.GetType());
作为旁注,您可以将实现该接口的任何类实例指定给该接口的引用,这就是我们所称的