Нет, если смотреть на определения из раздела 7.6.10 спецификации C #, выражение object-or-collection-initializer
равно или , object-initializer
или a collection-initializer
.
object-initializer
состоит из нескольких member-initializer
с, каждый из которых имеет форму initializer = initializer-value
, тогда как collection-initializer
состоит из нескольких element-initializer
с, каждый из которых является non-assigment-expression
.
Так что, похоже, это сделано специально - возможно, ради простоты.Я не могу сказать, что когда-либо хотел сделать это, если честно.(Я обычно не получал бы от List<int>
для начала - я бы сочинил его вместо этого.) Мне бы очень не хотелось видеть:
var obj3 = new MyList { 1, 2, Text = "Hello", 3, 4 };
РЕДАКТИРОВАТЬ: Если вы действительно, действительно Если вы хотите включить это, вы можете поместить это в класс:
class MyList : List<int>
{
public string Text { get; set; }
public MyList Values { get { return this; } }
}
, и в этот момент вы можете написать:
var obj3 = new MyList { Text = "Hello", Values = { 1, 2, 3, 4 } };