Являются ли неявно типизированные переменные способом продвижения вперед (C #)

StackOverflow https://stackoverflow.com/questions/1888317

  •  19-09-2019
  •  | 
  •  

Вопрос

Я использую StyleCop для Resharper в проекте, первоначально написанном для .net v2.Но с тех пор я обновил этот проект для платформы 3.5.

Stylecop рекомендует мне изменить основную часть моих явно типизированных переменных на неявно типизированные, например:

строка - var

пользовательский сильный тип - var

Является ли это способом продвижения вперед при работе с проектом .net 3.5.Кажется необычным объявлять все как var.

Не стесняйтесь обновлять заголовок вопроса, если моя терминология отсутствует...

Это было полезно?

Решение

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

Другие советы

Обсуждалось во многих местах, и это зависит от вкуса.Сравните эти две строки кода:

StringBuilder stringBuilder = new StringBuilder();
var stringBuilder = new StringBuilder();

Что вы предпочитаете?

Взгляните на это

var (ссылка на C #) и

Неявно типизированные локальные переменные (Руководство по программированию на C #)

Неявно типизированной локальной переменной типизированы как если бы тип, но компилятор определяет тип.

Также взгляните на Использование ключевого слова var в C#

и Дебаты на C #:Когда вы должны использовать var?

Я считаю, что это скорее предложение, и его следует рассмотреть, но не обязательно реализовать в полном объеме.

Хотя лично я считаю, что наилучшее использование var - это когда объявляющий / возвращающий тип очевиден, т.е:

var temp = "Test me now";

против

var temp = GetTestData();

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

    var test = new Dictionary<string,string>();

против

    Dictionary<string, string> test = new Dictionary<string,string>();

var очень важен при использовании, напримеранонимные типы...

var cees = from c in Customers select new { c.Name, c.Birthdate };

Resharper предложит изменить все на var.Для очевидных определений , таких как

var c = new Customer();

Мне нравится им пользоваться.для некоторого вызова API я могу явно записать тип:

Customer c = repository.Get(1);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top