对给定索引处的接口使用“new”修饰符,例如“var b = new ISomeInterface[0];”,这是啥意思?
Posted
技术标签:
【中文标题】对给定索引处的接口使用“new”修饰符,例如“var b = new ISomeInterface[0];”,这是啥意思?【英文标题】:Using the 'new' modifier with interfaces at a given index like 'var b = new ISomeInterface[0];', what does it mean?对给定索引处的接口使用“new”修饰符,例如“var b = new ISomeInterface[0];”,这是什么意思? 【发布时间】:2014-08-12 11:53:24 【问题描述】:我第一次遇到下面的 C# 语法,我会把它当作语法错误丢弃,除非 VS 对它非常满意并且可以编译。
var a = new ISomeInterface[0];
接口声明为
public interface ISomeInterface
也非常感谢您提供进一步阅读的链接。
【问题讨论】:
将鼠标移到var
关键字上:它会显示实际类型(即数组)
【参考方案1】:
您已经创建了一个 ISomeInterface
数组。
这与声明任何其他数组相同,例如:
string[] a = new string[0];
一开始我也有点怀疑,因为乍一看,代码似乎在实例化一个接口,这是你通常无法做到的。
【讨论】:
【参考方案2】:它正在创建一个新数组(零长度),而不是接口的新实例。顺便说一句,您实际上可以new
一个接口...在正确的条件下;p(COM 属性)
【讨论】:
我不知道是让 Marc Gravell 亲自回答我的问题更让我感到荣幸,还是在意识到我提出了这么愚蠢的问题时更感到羞愧!不管怎样,谢谢! =)以上是关于对给定索引处的接口使用“new”修饰符,例如“var b = new ISomeInterface[0];”,这是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章