Индексаторы обеспечивают доступ к объектам массива с помощью индекса.
Синтаксис:
модификатор тип this [int индекс] {
set {
//устанавливает значение
}
get {
//возвращает значение
}
}
модификатор тип this [int индекс] {
set {
//устанавливает значение
}
get {
//возвращает значение
}
}
одномерные индексаторы
Main.cs
usingSystem;classCounter {-
decimalprice; -
publicCounter(decimalarg) { -
price = arg; -
} -
privateushort[] arrayShow =newushort[2]; -
//индексатор -
publicushortthis[inti] { -
set{ -
arrayShow[i] = value; -
} -
get{ -
returnarrayShow[i]; -
} -
} -
publicushortResultShow() { -
return(ushort)(arrayShow[1] - arrayShow[0]); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow() * price), 2); -
} }classProgram {-
publicstaticintMain() { -
Console.WriteLine("оплата за электроэнергию\n"); -
Console.Write("Введите цену за 1 кВт/ч : "); -
decimalprice =decimal.Parse(Console.ReadLine()); -
Counter C =newCounter(price); -
Console.Write("Введите начальные показания счетчика : "); -
C[0] =ushort.Parse(Console.ReadLine()); -
Console.Write("Введите конечные показания счетчика : "); -
C[1] =ushort.Parse(Console.ReadLine()); -
Console.WriteLine("Сумма за электроэнергию : {0}", C.Sum()); -
Console.ReadKey(); -
return0; -
} }
usingSystem;classCounter {-
decimalprice; -
publicCounter(decimalarg) { -
price = arg; -
} -
privateushort[] arrayShow =newushort[2]; -
//индексатор -
publicushortthis[inti] { -
set{ -
arrayShow[i] = value; -
} -
get{ -
returnarrayShow[i]; -
} -
} -
publicushortResultShow() { -
return(ushort)(arrayShow[1] - arrayShow[0]); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow() * price), 2); -
} }classProgram {-
publicstaticintMain() { -
Console.WriteLine("оплата за электроэнергию\n"); -
Console.Write("Введите цену за 1 кВт/ч : "); -
decimalprice =decimal.Parse(Console.ReadLine()); -
Counter C =newCounter(price); -
Console.Write("Введите начальные показания счетчика : "); -
C[0] =ushort.Parse(Console.ReadLine()); -
Console.Write("Введите конечные показания счетчика : "); -
C[1] =ushort.Parse(Console.ReadLine()); -
Console.WriteLine("Сумма за электроэнергию : {0}", C.Sum()); -
Console.ReadKey(); -
return0; -
} }
оплата за электроэнергию
Введите цену за 1 кВт/ч : 0,3084
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Сумма за электроэнергию : 30,84
Введите цену за 1 кВт/ч : 0,3084
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Сумма за электроэнергию : 30,84
условие в теле аксессора одномерного индексатора
Main.cs
usingSystem;classCounter {-
decimalprice; -
publicCounter(decimalarg) { -
price = arg; -
} -
privateushort[] arrayShow =newushort[2]; -
//индексатор -
publicushortthis[inti] { -
set{ -
if(i<0 || i>arrayShow.Length) { -
thrownewException("Индекс находится за пределами границы массива"); -
} -
else{ -
arrayShow[i] = value; -
} -
} -
get{ -
if(i<0 || i>arrayShow.Length) { -
thrownewException("Индекс находится за пределами границы массива"); -
} -
else{ -
returnarrayShow[i]; -
} -
} -
} -
publicushortResultShow() { -
return(ushort)(arrayShow[1] - arrayShow[0]); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow() * price), 2); -
} }classProgram {-
publicstaticintMain() { -
Console.WriteLine("оплата за электроэнергию\n"); -
Console.Write("Введите цену за 1 кВт/ч : "); -
decimalprice =decimal.Parse(Console.ReadLine()); -
Counter C =newCounter(price); -
Console.Write("Введите начальные показания счетчика : "); -
C[0] =ushort.Parse(Console.ReadLine()); -
Console.Write("Введите конечные показания счетчика : "); -
C[1] =ushort.Parse(Console.ReadLine()); -
Console.WriteLine("Сумма за электроэнергию : {0}", C.Sum()); -
Console.ReadKey(); -
return0; -
} }
usingSystem;classCounter {-
decimalprice; -
publicCounter(decimalarg) { -
price = arg; -
} -
privateushort[] arrayShow =newushort[2]; -
//индексатор -
publicushortthis[inti] { -
set{ -
if(i<0 || i>arrayShow.Length) { -
thrownewException("Индекс находится за пределами границы массива"); -
} -
else{ -
arrayShow[i] = value; -
} -
} -
get{ -
if(i<0 || i>arrayShow.Length) { -
thrownewException("Индекс находится за пределами границы массива"); -
} -
else{ -
returnarrayShow[i]; -
} -
} -
} -
publicushortResultShow() { -
return(ushort)(arrayShow[1] - arrayShow[0]); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow() * price), 2); -
} }classProgram {-
publicstaticintMain() { -
Console.WriteLine("оплата за электроэнергию\n"); -
Console.Write("Введите цену за 1 кВт/ч : "); -
decimalprice =decimal.Parse(Console.ReadLine()); -
Counter C =newCounter(price); -
Console.Write("Введите начальные показания счетчика : "); -
C[0] =ushort.Parse(Console.ReadLine()); -
Console.Write("Введите конечные показания счетчика : "); -
C[1] =ushort.Parse(Console.ReadLine()); -
Console.WriteLine("Сумма за электроэнергию : {0}", C.Sum()); -
Console.ReadKey(); -
return0; -
} }
оплата за электроэнергию
Введите цену за 1 кВт/ч : 0,3084
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Сумма за электроэнергию : 30,84
Введите цену за 1 кВт/ч : 0,3084
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Сумма за электроэнергию : 30,84