Используя модификатор 'new' с интерфейсами по заданному индексу, например 'var b = new ISomeInterface[0];', что это значит?

Я впервые столкнулся со следующим синтаксисом C#, я бы отбросил его как синтаксическую ошибку, за исключением того, что VS абсолютно доволен этим и компилирует.

var a = new ISomeInterface[0];

Интерфейс объявлен как

public interface ISomeInterface
{
}

Ссылки на дальнейшее чтение также высоко ценятся.

2 ответа

Решение

Вы создали массив ISomeInterface,

Это то же самое, что и объявление любого другого массива, например:

string[] a = new string[0];

Сначала я тоже кое-что предпринял, потому что на первый взгляд оказалось, что код создает экземпляр интерфейса, чего вы обычно не можете сделать.

Он создает новый массив (нулевой длины), а не новый экземпляр интерфейса. Кстати, вы можете на самом деле new интерфейс... при правильных условиях;p (атрибуты COM)

Другие вопросы по тегам