这是主要课程
class Program
{
static void Main(string[] args)
{
MyArray fruit = new MyArray(-2, 1);
fruit[-2] = "Apple";
fruit[-1] = "Orange";
fruit[0] = "Banana";
fruit[1] = "Blackcurrant";
Console.WriteLine(fruit[-1]); // Outputs "Orange"
Console.WriteLine(fruit[0]); // Outputs "Banana"
Console.WriteLine(fruit[-1,0]); // Output "O"
Console.ReadLine();
}
}
这是索引器的类:
class MyArray
{
int _lowerBound;
int _upperBound;
string[] _items;
public MyArray(int lowerBound, int upperBound)
{
_lowerBound = lowerBound;
_upperBound = upperBound;
_items = new string[1 + upperBound - lowerBound];
}
public string this[int index]
{
get { return _items[index - _lowerBound]; }
set { _items[index - _lowerBound] = value; }
}
public string this[int word, int position]
{
get { return _items[word - _lowerBound].Substring(position, 1); }
}
}
因此,在“Class MyArray”中定义的多维索引器
当我们将“-1”作为“word”的值传递给索引器时,我无法理解这是如何工作的。“_lowerbound”的值为“-2”。所以这意味着,返回的值应该是_items[-1 - (-2)],这使它成为_items[1]。
但实际上它指向水果的-1 指数,即橙色。
请清除我的疑问。