Если у меня есть следующий код:
public class MyClass
{
public string myName { get; private set; }
public string myId { get; set; }
}
Для установщика создается частная генерируемая компилятором переменная. Я хочу, чтобы сеттер не был доступен только для инициализации объекта. Но как я могу сначала установить переменную myName?
Чтение об инициализации объекта Я обнаружил следующее:
... его только для чтения и частное поле, представляющее базовое хранилище имеет имя, сгенерированное компилятором, которое мы не может использоваться в конструкторе для назначения к нему. Решение состоит в использовании объекта [...] инициализаторы
Таким образом, было бы полезно использовать:
MyClass mc = new MyClass {
myName = "What ever",
myId = "1234"
};
Но это в ошибке компилятора говорит, что:
Свойство или индекс 'MyClass.MyClass.myName' не могут использоваться в этом контексте, потому что доступный доступ к набору недоступен
Итак, есть ли способ достичь этого значения с помощью инициализации объекта? Если есть, то каков правильный способ сделать это?