コードを示すことから始めましょう。
public class Collection
{
private object[] values;
public Collection(int size) => values = new object[size];
public object this[string index]
{
get => values[index];
set => values[index] = (object)value;
}
}
public class Program
{
private static void Main()
{
Collection collection = new Collection(3);
collection["integer"] = 123;
collection["decimal"] = 456.78;
collection["text"] = "Hello World!";
double total = (double)(int)collection["integer"] + (double)collection["decimal"];
Console.WriteLine("Total is {0}", total);
Console.WriteLine();
Collection collection2 = new Collection(2);
collection2["integer"] = 123;
collection2["decimal"] = 456.78;
collection2["text"] = "Hello World!"; // This wont be added because of limit
}
}
私はこのチュートリアルを行っていますが、クラスProgram
は既に与えられており、変更できません。私がする必要があるのはCollection
クラスを作成することなので、Collection
クラスは私が作成します。しかし、以前のチュートリアルで整数インデクサーが機能したのと同じように機能しないように見えるIndexer
ため、にはこの問題があります。string
文字列をインデクサーとして使用する方法はありますか、または別のアプローチを検討する必要がありますか? 名前空間の追加も許可されていません。このチュートリアルで 1 週間立ち往生しています。