Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Неявное объявления переменных через var / 25 сообщений из 182, страница 1 из 8
14.07.2015, 00:59
    #39006438
Varcom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Пошла дурная мода объявлять переменные в исходниках через var:
Код: c#
1.
2.
var formContent = new FormUrlEncodedContent(pairs);
var response = client.PostAsync("token", formContent);


Так делают у нас на работе, так делают знакомые фрилансеры. Че мне делать в данной ситуации? Убеждать что это нехорошо, или смириться и делать как все?
...
Рейтинг: 0 / 0
14.07.2015, 01:01
    #39006439
Varcom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Я предпочитаю явно задавать тип переменной:
...
Рейтинг: 0 / 0
14.07.2015, 01:07
    #39006441
Varcom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Я предпочитаю явно задавать тип переменной:
Код: c#
1.
2.
FormUrlEncodedContent formContent = new FormUrlEncodedContent(pairs);
HttpResponseMessage response = client.PostAsync("token", formContent);


Плин, сообщения нельзя редактировать
...
Рейтинг: 0 / 0
14.07.2015, 01:17
    #39006442
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
"Плохо" и "хорошо" -- они всегда по сравнению с чем-то. var foo = bar.GetBaz(); -- попахивает, ваши примеры -- вполне себе оправданное использование автоматического вывода типов.
...
Рейтинг: 0 / 0
14.07.2015, 01:41
    #39006445
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Varcom,

а что не System.Net.Http.HttpResponseMessage response ?
...
Рейтинг: 0 / 0
14.07.2015, 02:11
    #39006449
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
VarcomПошла дурная мода объявлять переменные в исходниках через va
Тебя кто-то назначил "главным по моде в C#" чтобы с ходу вешать ярлыки? Данное ключевое слово является отличным помошником в деле сокращения кода. Вопрос только в уместности применения в конкретных ситуациях.

Varcom
Код: c#
1.
var formContent = new FormUrlEncodedContent(pairs);


Нормальное применение. Тип переменной ясно виден. Повторение типа не сделает этот код лучше.

Varcom
Код: c#
1.
var response = client.PostAsync("token", formContent);


Спорный пример. Я бы решил, что тип response имеет тип Task<TSomething> из-за суффикса async. Если данный метод используется часто в коде, то использование var скорее всего оправдано т.к. программисты помнят тип возращаего значения. Если нет, то возможно лучше указать явно. Говорю "скорее всего" и "возможно" потому что каждая команда решает этот вопрос по разному.
...
Рейтинг: 0 / 0
14.07.2015, 10:54
    #39006697
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
VarcomТак делают у нас на работе, так делают знакомые фрилансеры. Че мне делать в данной ситуации? Убеждать что это нехорошо, или смириться и делать как все?
Клятые пэхаписты и жабаскриписты.
...
Рейтинг: 0 / 0
14.07.2015, 10:56
    #39006698
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Varcom,

дурная мода? кто тебе сказал, что она дурная? это твоё личное мнение так что такие вырожиния стоит держать при себе.
если тебе не понятно, какой тип объявляется в строке var formContent = new FormUrlEncodedContent(pairs), то проблема не в моде.
Более того, если навести курсор на тип var будет видно, что он объявлен вполне себе явно, это не тип variable.
лично мне удобнее писать var
а) это короче
б) читаемость такого когда может ухудшиться, только если мы получаем объект из метода аля
var a = object.GetValue(); вот тогда можно вполне объявить явно.
...
Рейтинг: 0 / 0
14.07.2015, 11:12
    #39006717
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
VarcomПошла дурная мода
У слоупоков? Этой возможности уже лет 7 как.
...
Рейтинг: 0 / 0
14.07.2015, 11:15
    #39006721
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Для какого-нибудь двух-строчного foreach (var user in userAccounts) - вполне себе. Главное правильно имена переменным выбирать
...
Рейтинг: 0 / 0
14.07.2015, 11:45
    #39006779
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
VarcomУбеждать что это нехорошо, или смириться и делать как все?
Это кто Вам такое сказал, что это не хорошо?
...
Рейтинг: 0 / 0
14.07.2015, 11:56
    #39006803
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Varcom, если вам что-то не нравится (вне зависимости от обоснованности вашего мнения), то при постановке задачи фрилансерам будьте любезны в ТЗ приложить документ "Стандарты кодирования". Нет документа - придирки не обоснованы, если код работает.
...
Рейтинг: 0 / 0
14.07.2015, 12:05
    #39006814
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Varcom,

Тоже так считал, пока не попал в контору, где обязательным стоит решарпер. Сейчас мнение изменилось на противоположное.

использование var вместо явного указания типа
...
Рейтинг: 0 / 0
14.07.2015, 13:23
    #39006913
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
refregVarcom,

Тоже так считал, пока не попал в контору, где обязательным стоит решарпер. Сейчас мнение изменилось на противоположное.

использование var вместо явного указания типа

Почитал

оттудаиспользование var принуждает к более качественному API. Во-первых, вы получите оптимальные типы, когда позволяете компилятору получать самому тип возвращаемого значения метода или свойства. И еще вы вынуждены будете более правильно называть свои методы, чтобы они явно указывали на то, что возвращают;
Господи, если программист для любой переменной тип Object указывает, тогда да, var в данном случае использовать предпочтительнее.

Это ничего, что такая конструкция не компилируется? И от того что я назову свой метод правильно, компилироваться не будет?

Код: c#
1.
2.
3.
4.
 private var t(var y)
        {
            return y;
        }
...
Рейтинг: 0 / 0
14.07.2015, 13:29
    #39006918
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Cat2,
var равнносильно Object
...
Рейтинг: 0 / 0
14.07.2015, 13:42
    #39006929
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
оттудаиспользование var принуждает к более качественному API.

эт вряд ли.

по существу - Linq без автоматического вывода типа херово будет
...
Рейтинг: 0 / 0
14.07.2015, 14:16
    #39006972
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
[quot Cat2]refregVarcom,
Код: c#
1.
2.
3.
4.
 private var t(var y)
        {
            return y;
        }


что за бред var, это не тип вообще, это просто синтаксический сахар
...
Рейтинг: 0 / 0
14.07.2015, 15:24
    #39007046
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
[quote Roman Mejtes]Cat2refregVarcom,
Код: c#
1.
2.
3.
4.
 private var t(var y)
        {
            return y;
        }



что за бред var, это не тип вообще, это просто синтаксический сахар

Оттуда, с ХабраИ еще вы вынуждены будете более правильно называть свои методы, чтобы они явно указывали на то, что возвращают;
...
Рейтинг: 0 / 0
14.07.2015, 15:36
    #39007061
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
[quote Cat2]Roman MejtesCat2пропущено...

что за бред var, это не тип вообще, это просто синтаксический сахар

Оттуда, с ХабраИ еще вы вынуждены будете более правильно называть свои методы, чтобы они явно указывали на то, что возвращают;
Это вы неверно поняли. Речь шла о следующем контексте:

var result = GetData(name);
и
var result = GetTaxFor(name);

в обоих случаях методы вернут, к примеру, decimal, но при вызове в первом случае это будет неочевидно
...
Рейтинг: 0 / 0
14.07.2015, 15:38
    #39007063
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
[quote Arm79]Cat2Roman Mejtesпропущено...


пропущено...

Это вы неверно поняли. Речь шла о следующем контексте:

var result = GetData(name);
и
var result = GetTaxFor(name);

в обоих случаях методы вернут, к примеру, decimal, но при вызове в первом случае это будет неочевидно
Во втором тоже, если такса в йенах
...
Рейтинг: 0 / 0
14.07.2015, 15:43
    #39007067
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Cat2Во втором тоже, если такса в йенах

как связаны decimal и йены? В конце концов, если бы нужны были налоги в йенах, это экзотика, и было бы отражено, например:

var result = GetTaxFor(name, Countires.Japan);
...
Рейтинг: 0 / 0
14.07.2015, 15:46
    #39007072
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Arm79Cat2Во втором тоже, если такса в йенах

как связаны decimal и йены? В конце концов, если бы нужны были налоги в йенах, это экзотика, и было бы отражено, например:

var result = GetTaxFor(name, Countires.Japan);
А как связаны с decimal TaxFor?
...
Рейтинг: 0 / 0
14.07.2015, 15:48
    #39007074
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Cat2,

Я бы перевел как ПолучитьНалогДля(имя...). Налог - это деньги, обычно считаются в decimal, если нет выделенного класса Money
...
Рейтинг: 0 / 0
14.07.2015, 15:58
    #39007081
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Код: c#
1.
2.
        TextReader rdr = new StreamReader();
        var rdr =  new StreamReader();



разница есть
...
Рейтинг: 0 / 0
14.07.2015, 17:07
    #39007175
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неявное объявления переменных через var
Arm79Cat2,

Я бы перевел как ПолучитьНалогДля(имя...). Налог - это деньги, обычно считаются в decimal, если нет выделенного класса Money
А я бы перевел - "ставка для". Надо без снобизма называть по-русски. В русском языке одно слово обычно имеет одно значение.
ПолучитьСтавкуНалогаДля()
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Неявное объявления переменных через var / 25 сообщений из 182, страница 1 из 8
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]