170 похожих чатов

Почему нельзя объявлять var переменные как поля класса?

18 ответов

11 просмотров

Потому что шарп строготипизированный язык

а что ты предлагаешь взамен? public class Test { private var _field; } угадай какой тип я загадал

var это синтаксический сахар для вывода статического типа компилятором Если ты определяешь поле таким образом то компилятор не может догадаться какой там на самом деле тип под капотом

можешь generic тип сделать поле public class Person<T> { public T Name {get;set;} } в таком случае каждый раз когда ты будешь создавать класс ты должен указать тип поля

Egor Gusarenko
var это синтаксический сахар для вывода статическо...

Var _field = 3d; а что здесь мешает компилятору вывести тип.?

AN
Var _field = 3d; а что здесь мешает компилятору вы...

Технически ничего, но мы уже в ограничения языка тыкаемся

Очень плохо для читаемости будет

Антон 😇
Потому что шарп строготипизированный язык

И чо, там вывод типов в компайл тайме

bookuxa- Автор вопроса
Viacheslav
а что ты предлагаешь взамен? public class Test { p...

Ну инициализировать значением надо и вне класса сразу же

bookuxa
Ну инициализировать значением надо и вне класса ср...

так если оно приватное, то как ты его инициализируешь вне класса? выше тебе подсказали использовать дженерики

Viacheslav
а что ты предлагаешь взамен? public class Test { p...

Речь не про это, а про public class Test { private var _field = new MyClass(); }

Phantom
Речь не про это, а про public class Test { privat...

это всего-лишь твое предположение в вопросе ничего не было сказано про инициализацию

Phantom
Иначе смысла нет

тогда возникает вопрос, почему нельзя использовать устоявшиеся конструкции языка? твой вариант(... = new()) тоже норм

Phantom
Какие устоявшиеся конструкции языка?

private T _tName; private string _name; private <some_type> _fieldName;

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта