Все ли это действительно необходимо?
Нет необходимости.
Это действительно повлияет на эффективность моей программы?
Это не повлияет на скомпилированный кодтаким образом, что это вообще меняет производительность или семантику.
Я имею в виду, что будет хорошего, если заменить имена моих классов ключевым словом var
.В конце концов, var также заменяется именем класса во время компиляции.
Более читаемый код.
Это происходит потому, что он был запрограммирован, чтобы делать или делать эти вещи действительновлияет так или иначе?
Да.Они настраиваются, если они вам не нравятся.
1) Хорошо.
SomeObject o = new SomeObject();
Первый SomeObject
является избыточным и бесполезным, а с var
он не менее читабелен ивозможно, более читабельный.Кроме того, для сложных определений, таких как
var dictionary = new Dictionary<string, Dictionary<string, List<string>>();
, это намного удобнее для чтения, чем альтернатива.Однако это может быть преувеличено.Например,
string s = "s";
предпочтительнее, чем
var s = "s";
, а
var i = 5;
более
int i = 5;
Обратите внимание, что
var i = 2147483648;
действительно плохо, потому что не сразу понятно, какой тип i
.Для не сложных определений я предпочитаю использовать явную типизацию, а не неявную.Кроме того, иногда вы хотите сказать
IFoo foo = new Foo();
, чтобы явно набрать foo
an IFoo
, тогда как var
будет набирать его как Foo
.
2) Меньше кодав общем лучше код.
3) Я ненавижу это предложение.Я ненавижу ведущие подчеркивания.Я использую обычные правила именования для своих переменных-членов, и для ясности я предваряю их this
Я бы отключил эту.
public SomeObject(string name) {
this.name = name;
}
, на мой взгляд, более читабельно, чем
public SomeObject(string name) {
_name = name;
}
.
4) Подождите, почему он это делает?Я немного смущен этим.Потому что это частично, а другая часть определения класса наследуется?Я не могу себе представить, что это происходит в случае, когда это меняет семантику.Я бы отключил этот.
5) Мне не нравится этот (см. 3.)