Потому что шарп строготипизированный язык
а что ты предлагаешь взамен? public class Test { private var _field; } угадай какой тип я загадал
var это синтаксический сахар для вывода статического типа компилятором Если ты определяешь поле таким образом то компилятор не может догадаться какой там на самом деле тип под капотом
можешь generic тип сделать поле public class Person<T> { public T Name {get;set;} } в таком случае каждый раз когда ты будешь создавать класс ты должен указать тип поля
Var _field = 3d; а что здесь мешает компилятору вывести тип.?
Технически ничего, но мы уже в ограничения языка тыкаемся
Очень плохо для читаемости будет
И чо, там вывод типов в компайл тайме
Ну инициализировать значением надо и вне класса сразу же
В ссылке вверху написано почему
так если оно приватное, то как ты его инициализируешь вне класса? выше тебе подсказали использовать дженерики
Речь не про это, а про public class Test { private var _field = new MyClass(); }
это всего-лишь твое предположение в вопросе ничего не было сказано про инициализацию
Иначе смысла нет
тогда возникает вопрос, почему нельзя использовать устоявшиеся конструкции языка? твой вариант(... = new()) тоже норм
Какие устоявшиеся конструкции языка?
private T _tName; private string _name; private <some_type> _fieldName;
Обсуждают сегодня