Всем привет.
Объясните, пожалуйста. Почему нельзя произвести присвоение в пользовательской коллекции так само как в пользовательском массиве и как это сделать правильно.
using System;
using System.Collections;
class Inventory
{
public 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,7:C} Наличие: {2}", name, cost, onhand);
}
}
class InventoryList
{
static void Main()
{
ArrayList inv = new ArrayList();
// Добавить элементы в список,
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[] dfdf = new Inventory[4];
dfdf[0] = new Inventory("Кусачки", 5.95, 3);
dfdf[1] = new Inventory("Отвертки", 8.29, 2);
dfdf[2] = new Inventory("Молотки", 3.50, 4);
dfdf[3] = new Inventory("Дрели", 19.88, 8);
Console.WriteLine();
foreach (Inventory i in dfdf)
{
Console.WriteLine(" " + i);
}
dfdf[2].name = "Лом";
inv[2].name = "Лом"; // Ошибка
Console.WriteLine();
foreach (Inventory i in dfdf)
{
Console.WriteLine(" " + i);
}
}
}