Это корректно для использования наследования вместо искажения имени в c#?

только заменить

retrieveData();

на

this.retrieveData();
5
задан Trap 29 September 2008 в 00:30
поделиться

8 ответов

Не делайте этого. Когда люди чтение:

List<Customer> 

они сразу понимают это. Когда они читают:

CustomerList

они должны пойти и выяснить то, что CustomerList, и это делает Ваш код тяжелее для чтения. Если Вы не единственный, работающий над Вашей кодовой базой, писание читаемого кода является хорошей идеей.

6
ответ дан 18 December 2019 в 05:40
поделиться

хорошо, если Вы не добавляете некоторую функциональность к базовому классу нет никакого смысла в создании интерфейсного объекта. Я пошел бы с номером два, если Вы действительно должны, но почему не только создают переменную?

List<Customer> customerList = new List<Customer>();
11
ответ дан 18 December 2019 в 05:40
поделиться

Я согласился бы с не использованием псевдонима тем способом. Никто в Вашей команде не должен использовать псевдонимы, таким образом представленные; это не причина, искажающая, был обеспечен. Кроме того, от пути дженерики работают, существует только когда-либо один класс Списка, неважно, сколько мест Вы используете его.

В дополнение только к объявлению и использованию List<Customer>, Вы собираетесь в конечном счете хотеть передать тот список чему-то еще. Постарайтесь не передавать бетон List<Customer> и вместо этого передача IList<Customer> или ICollection<Customer> поскольку это сделает те методы более эластичными и легче к программе против.

Однажды в будущем при реальной необходимости в классе набора CustomerList можно реализовать ICollection<Customer> или IList<Customer> на нем и продолжают передавать его тем методам без них изменение или даже знание лучше.

4
ответ дан 18 December 2019 в 05:40
поделиться

На самом деле Вы не должны использовать также. Корректный подход согласно руководству по проектированию платформы должен или использовать или наследоваться Системе. Наборы. ObjectModel. Набор <T> в общедоступных API (Список <T> должен только использоваться для внутренней реализации).

Но относительно конкретного вопроса именования, рекомендация, кажется, для использования универсального имени типа непосредственно, не искажая, если Вы не должны добавлять функциональность к набору:

Действительно возвратите Набор <T> из объектных моделей, чтобы предоставить стандартному простому ванильному набору API.

Действительно возвратите подкласс Набора <T> от объектных моделей, чтобы предоставить высокоуровневому набору API.

3
ответ дан 18 December 2019 в 05:40
поделиться

Это - один из тех, 'Он зависит' вопросы.

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

Если Вы просто хотите использовать список клиентов, затем используют переменную.

1
ответ дан 18 December 2019 в 05:40
поделиться

Если Вы просто пытаетесь экономить на вводе, то используйте последнего. Вы не собираетесь сталкиваться с любыми причудливыми проблемами наследования тот путь.

Если Вы на самом деле хотите выставить логически отличный тип набора, то используйте первого - можно возвратиться и добавить материал к нему затем.

Лично, я просто использовал бы List<Customer> и прекратите дело.

1
ответ дан 18 December 2019 в 05:40
поделиться

Я по существу соглашаюсь с Ed. Если Вы не должны на самом деле расширять функциональность универсальной конструкции Списка, просто используйте универсальный Список:

List<Customer> customerList = new List<Customer>();

Если бы действительно необходимо расширять функциональность затем обычно, Вы посмотрели бы на наследование.

Третья возможность состоит в том, откуда Вам нужна значительно измененная функциональность универсальной конструкции списка, в этом случае можно хотеть просто наследоваться IEnumerable. Выполнение так делает класс применимым в счетных операциях (таких как "foreach"), но позволяет Вам полностью определять все поведение класса.

1
ответ дан 18 December 2019 в 05:40
поделиться

Один программист, экономящий на вводе, мог очень хорошо быть кошмаром обслуживания следующего программиста. Я сказал бы, просто выводят дженерик правильно, как так многие здесь сказали. Это более чисто и более детальное описание намерения Вашего кода, и это поможет программисту обслуживания. (Кто мог бы быть Вами, шестью месяцами и четырьмя новыми проектами в будущем!)

1
ответ дан 18 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: