Вопрос по объему использования ключевого слова "Var" - PullRequest
0 голосов
/ 09 ноября 2010

Новичок в C # Я много читал по изучению языка, а во 2 полных книгах и многочисленных статьях на сайте вспоминаю ли я когда-нибудь о том, что использование ключевого слова «var» запрещено в рамках класса, но мне нужнобыть в некотором вложенном элементе класса (то есть метод).Я знаю, что вы можете объявить переменную с помощью модификатора доступа и типа (то есть string, int..etc.).

Даже на этом сайте я могу найти вопрос об использовании "var", но не относительно его ограничения.

Может быть, это так очевидно для каждого человека, что большинство авторов не упоминают об этом, и я последний читатель на земле, которому это не очевидно - кто-то будет так любезно объяснить причину этого?

НЕ РАЗРЕШЕННЫЙ ПРИМЕР

public class SomeClass
{
    var SomeVariable = new SomeClass();
}

РАЗРЕШЕННЫЙ ПРИМЕР

public class SomeClass
{
   public void SomeMethod()
   {
      var SomeVariable = new SomeClass();
   }
}

Я могу явно объявить

public class SomeClass
{
  public string SomeVariable;
}

1 Ответ

4 голосов
/ 09 ноября 2010

Вы можете использовать var для локальных объявлений, но не для полей, в основном.

В блоге Эрика Липперта объясняется почему.По сути:

  • Это приводит к некоторым неловким ситуациям, в которых есть неоднозначность
  • Это означает выработку способа предоставления анонимных типов как части открытого интерфейса класса, потенциально
  • Это не очень хорошо работает с тем, как реализован компилятор (может показаться, что команда просто ленива, но им нужно расставлять приоритеты в работе, как и всем)

(я, конечно, надеюсь, что ни один из вашихC # books был C # в глубине, потому что я определенно упомянул об этом там ... раздел 8.2.2 в обоих изданиях:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...