Почему мы не можем объявить var = новый Список <строка> на уровне класса?

Попробуйте связать свои поля со свойствами состояния, используя атрибут value в каждом из них.

Ввод электронной почты будет выглядеть так:

<input type="email" onChange={this.handleChange} id="email" />

И ввод пароля будет выглядеть так:

<input type="password" onChange={this.handleChange} value={this.state.password} id="password" />
5
задан Adam Bellaire 8 October 2008 в 20:41
поделиться

4 ответа

Существуют технические проблемы с реализацией этой функции. Общие случаи кажутся простыми, но более сложные случаи (например, поля, ссылающиеся на другие поля в цепочках или циклах, выражения, содержащие анонимные типы) - нет.

См. Блог Эрика Липперта для более подробного объяснения: Почему нет var на полях?

6
ответ дан 13 December 2019 в 05:44
поделиться

Это не столь просто как реализация var в методе, так как также необходимо взять в учетную запись различные модификаторы и атрибуты как так:

[MyAttribute()] protected internal readonly var list = new List<T>();

То, что я действительно любил бы, является заключенной типом константой!

public const notFoundStatus = 404; // int
0
ответ дан 13 December 2019 в 05:44
поделиться

Парни компилятора просто не реализовали поддержку.

Это - полностью волшебство компилятора, и компилятор на самом деле не помещает что-то в IL, который говорит, "выясняют тип во времени выполнения", это знает тип и создает его в, таким образом, это, возможно, сделало это для участников также.

Это просто не делает.

Я вполне уверен, что, если бы Вы спросили фактического парня компилятора относительно команды компилятора C#, Вы получили бы что-то официальное, но нет никакого волшебного случая здесь, и должно быть возможно сделать то же для членских полей.

5
ответ дан 13 December 2019 в 05:44
поделиться

var ключевое слово было изобретено конкретное для поддержки анонимных типов. Вы обычно НЕ собираетесь объявлять анонимные типы на уровне класса, и таким образом он не был реализован.

Ваш оператор в качестве примера

var myList=new List<string>

не очень хороший пример того, как использовать var ключевое слово, так как это не для намеченной цели.

1
ответ дан 13 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

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