Можно использовать команду часов в сочетании с другой командой для поиска изменений. Пример этого был, когда я тестировал свой маршрутизатор, и я хотел заниматься числами на материале как отношение сигнал-шум, и т.д.
watch --interval=10 lynx -dump http://dslrouter/stats.html
Одна из причин - улучшенная читаемость. Что лучше?
Dictionary<int, MyLongNamedObject> dictionary = new Dictionary<int, MyLongNamedObject>();
или
var dictionary = new Dictionary<int, MyLongNamedObject>();
Технической разницы нет, если вы используете var, тип подразумевается компилятором. Если у вас есть такой код:
var x = 1;
x подразумевается как int, и никакие другие значения не могут быть присвоены ему.
Ключевое слово var полезно, если вы изменяете тип переменной; тогда вам нужно будет внести только одно изменение вместо двух:
var x = 1; --> var x = "hello";
int x = 1; --> string x = "hello";
Функция var
в .Net 3.0 - это просто вывод типа , который является типобезопасным и часто упрощает чтение кода. Но вам это не обязательно, и вы можете отключить эту рекомендацию в resharper, если хотите.
Ключевое слово var
было введено в C # 3.0 - оно позволяет нам забыть о явном указании нашего типа.
Нет реальной разницы в том, используете ли вы
] MyObject foo = DB.MyObjects.SingleOrDefault (w => w.Id == 1);
или
var foo = DB.MyObjects.SingleOrDefault (w => w.Id == 1);
за исключением чистой читабельности и меньшей вероятности ошибки.
Это похоже на клише, но скажите, что следующее может помочь вам понять:
var myInt = 23;
возвращает тип int
, тогда как
var myInt = "23";
возвращает строка
типа.
Мне это тоже не понравилось.
Я не хочу, чтобы это превратилось в дебаты об использовании var
, у него есть свои применения, но не следует использовать везде .
Главное, что нужно помнить, это то, что ReSharper настроен на любые стандарты кодирования, которые вы хотите.
Изменить: ReSharper и var
ReSharper предлагает явно чрезмерное использование ключевого слова var. Вы можете использовать его там, где тип очевиден:
var obj = new SomeObject();
Если тип не очевиден, вам лучше записать его:
SomeObject obj = DB.SomeClass.GetObject(42);
Я лично предпочитаю отключить это предложение. Использование var
часто может улучшить читаемость; но, как вы упомянули, он иногда сокращает его (с простыми типами или когда результирующий тип неясный ).
Я предпочитаю выбирать, когда я использую var
, а когда я не т. Но опять же, это только я.
Кстати, ReSharper проводит различие между «вы можете хотите применить это предложение к вашему коду »и« ваш код не работает, хотите, чтобы я его исправил? ». Ключевое слово var
находится в категории предложений вместе с такими вещами, как «инвертировать, если уменьшить вложенность»; вам не нужно следить за ним.
Вы можете настроить степень раздражения каждого из его предупреждений в диалоговом окне "Параметры" или непосредственно во всплывающем меню для этого предупреждения. Вы можете понизить рейтинг таких вещей, как предложение var
, чтобы они были менее заметными, или вы можете обновить такие вещи, как «использовать метод расширения»
Технической разницы нет (как указал eWolf). Вы можете использовать один или другой, сгенерированный код CLR будет выглядеть одинаково.
На мой взгляд, главное преимущество заключается в том, что это заставляет вас использовать более качественное именование переменных. В вашем примере «foo» - довольно плохой выбор для имени переменной.
ReSharper рекомендует использовать var, потому что он имеет тенденцию чтобы не загромождать создание объекта.
Сравните эти два примера:
StringBuilder bld = new StringBuilder();
var bld = new StringBuilder();
Это просто сокращение, которое, как предполагается, будет легче читать.
Я думаю, что это нормально, когда вы создаете новые объекты явно с помощью "new". Однако в вашем примере это может быть неочевидно, если классы не были названы должным образом.