Главная » C# » Управление коллекциями в С# 2.0 и последующих версиях

0

Разработчики корпорации Microsoft усердно искали решения проблем с хранением смешанных типов и потерей производительности при операциях упаковки и расповки. После долгих дискуссий и обдумываний было предложено решение в виде обобщений .NET. Вкратце, обобщения решают обе проблемы с коллекциями, прудительно устанавливая тип. (Обобщения .NET также применяются для решения более широких проблем.)

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

Далее приводится пример использования коллекций с применением обобщений:

IList<Example> 1st = new List<Exaznple>(); lst.Add(new Example { Value = 10 }); lst.Add(new Example { Value = 20 }); foreach (Example item in 1st) {

Console.WriteLine("item (" + item.Value + ")");

}

Жирным шрифтом выделен код, в котором применяется обобщение .NET. Код для добавления объекта и для цикла foreach идентичен коду в примере для версий яза до С# 2.0.

ЮЗак. 555

В угловых скобках (<>) заключен идентификатор применяемого общего подхода. Все, что находится внутри скобок при объявлении iLis t или List, как бы говорит: "Я хочу, чтобы экземпляры в моей коллекция были указанного в скобках типа". Добавить тип, не связанный с типом, определенным в iLis t или List , нельзя, поэтому следующий код не скомпилируется:

1st.Add(new Another());

Причиной  этому   является  то  обстоятельство,  что  коллекция  обобщений   .NET обеспечивает    типовую    безопасность    и    не    позволяет    смешивания    типов. Разрешаются только объекты типа Example. Объявляя список таким образом: IList<Example> 1st;

мы говорим, что список имеет метод, объявленный так:

void Add(Example item);

При программировании на языке С# версии 3.0 следует использовать классы коллеий для версий 2.0 и более поздних. Классы коллекций обобщений иных, чем обоения .NET, в большей степени являются унаследованным кодом.  Всюду, где воожно, следует использовать только обобщения .NET.

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

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии