Почему C # и VB имеют Generics? Какую пользу они дают? Generics, FTW - PullRequest
6 голосов
/ 19 сентября 2008

Из Википедия :

Общее программирование - это стиль компьютерное программирование, в котором алгоритмы написаны с точки зрения типы, которые будут определены позже затем создается при необходимости конкретные типы, предоставляемые в качестве параметров и был впервые Ада, появился в 1983 году. Такой подход позволяет писать общие функции или типы, которые отличаются только набором типы, на которых они работают при использовании, таким образом уменьшая дублирование.

Обобщения предоставляют возможность определять типы, которые будут указаны позже. Вам не нужно приводить предметы к типу, чтобы использовать их, потому что они уже набраны.

Почему в C # и VB есть Generics? Какую пользу они дают? Какие преимущества вы найдете, используя их?

Какие еще языки имеют дженерики?

Ответы [ 15 ]

0 голосов
/ 19 сентября 2008

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

Что такое инверсия контроля?

0 голосов
/ 19 сентября 2008

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

0 голосов
/ 19 сентября 2008

Java также имеет дженерики. C ++ имеет шаблоны.

Динамические языки, такие как Perl и Javascript, не имеют одинаковых ограничений типов, поэтому они получают в основном те же преимущества при меньшем объеме работы.

0 голосов
/ 19 сентября 2008

Самый простой способ объяснить это - привести пример. Допустим, вам нужны две хеш-таблицы: одна, которая отображает объекты типа string на тип int, а другая - объекты типа string на тип double. Вы можете определить Hashtable, а затем использовать типы K и V. Без дженериков вам пришлось бы использовать тип «объект», который, в дополнение к тому, что он должен быть приведен, чтобы иметь смысл, отказывается от безопасности типов. Просто создайте экземпляры Hashtable и Hashtable, и вы получите ваши хеш-таблицы с правильной проверкой типов и прочим.

0 голосов
/ 19 сентября 2008

Типичным примером являются коллекции. например набор типа T, как метод Add (T) и метод T get (). Один и тот же код, разные типы безопасных коллекций.

C ++, D, Ada и другие имеют шаблоны, расширенный набор обобщений, которые делают это немного по-другому. Ошибка дает тот же конечный результат (а затем и некоторые).

IIRC В Java есть дженерики, но я не делаю Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...