Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обязательный член "memberName" должен быть назначен значением, он не может использовать вложенный элемент или инициализатор коллекции.
При инициализации объекта с элементом required
необходимо непосредственно назначить элемент значению. Невозможно использовать вложенный член или инициализатор коллекции для установки свойств члена required
без предварительного создания его экземпляра.
Пример
Следующий пример приводит к возникновению ошибки CS9036:
class C
{
public string? Prop { get; set; }
}
class Program
{
public required C C { get; set; }
static void Main()
{
var program = new Program()
{
// error CS9036: Required member 'Program.C' must be assigned a value, it cannot use a nested member or collection initializer.
C = { Prop = "a" }
};
}
}
Решение
Чтобы устранить эту ошибку, непосредственно назначьте новый экземпляр требуемого свойства и инициализируйте его члены.
class C
{
public string? Prop { get; set; }
}
class Program
{
public required C C { get; set; }
static void Main()
{
var program = new Program()
{
// Correct: Assign a new instance of C and then initialize its Prop property
C = new C { Prop = "a" }
};
}
}
Дополнительные сведения о необходимых элементах см. в справочной статье об обязательных модификаторах, а также в руководстве по инициализаторам объектов и коллекций.