Обратите внимание на то, что в данном примере программы не потребовалось никаких специальных действий для сохранения в коллекции объектов типаInventory.Благодаря тому что все типы наследуют от классаob j ect,в необобщенной коллекции можно хранить объекты любого типа. Именно поэтому в необобщенной коллекции нетрудно сохранить объекты определяемых пользователем классов. Безусловно, это также означает, что такая коллекция не типизирована.
Для того чтобы сохранить объекты определяемых пользователем классов в типизированной коллекции, придется воспользоваться классами обобщенных коллекций. В качестве примера ниже приведен измененный вариант программы из предыдущего примера. В этом варианте используется класс обобщенной коллекцииList
// Пример сохранения объектов класса Inventory в // обобщенной коллекции класса List
using System;
using System.Collections.Generic;
class Inventory { string name; double cost; int onhand;
public Inventory(string n, double c, int h) { name = n; cost = c; onhand = h;
}
public override string ToString() { return
String.Format ("{0,-10}Стоимость: {1,6:С} Наличие: {2}", name, cost, onhand);
}
}
class TypeSafelnventoryList { static void Main() {
List
// Добавить элементы в список. inv.Add(new Inventory("Кусачки", 5.95, 3)); inv.Add(new Inventory("Отвертки", 8.29, 2)); inv.Add(new Inventory("Молотки", 3.50, 4)); inv.Add(new Inventory("Дрели", 19.88, 8));
Console.WriteLine("Перечень товарных запасов:"); foreach(Inventory i in inv) {
Console.WriteLine(" " + i);
}
}
}
Данный пример отличается' от предыдущего лишь передачей типаInventoryв качестве аргумента типа конструктору классаList