Индексаторы обеспечивают доступ к объектам массива с помощью индекса.
Синтаксис:
модификатор тип this [int индекс] {
set {
//устанавливает значение
}
get {
//возвращает значение
}
}
модификатор тип this [int индекс] {
set {
//устанавливает значение
}
get {
//возвращает значение
}
}
одномерные индексаторы
Main.cs
using
System;
class
Counter {
-
decimal
price;
-
public
Counter(
decimal
arg) {
-
price = arg;
-
}
-
private
ushort
[] arrayShow =
new
ushort
[2];
-
//индексатор
-
public
ushort
this
[
int
i] {
-
set
{
-
arrayShow[i] = value;
-
}
-
get
{
-
return
arrayShow[i];
-
}
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(arrayShow[1] - arrayShow[0]);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow() * price), 2);
-
}
}
class
Program {
-
public
static
int
Main() {
-
Console.WriteLine(
"оплата за электроэнергию\n"
);
-
Console.Write(
"Введите цену за 1 кВт/ч : "
);
-
decimal
price =
decimal
.Parse(Console.ReadLine());
-
Counter C =
new
Counter(price);
-
Console.Write(
"Введите начальные показания счетчика : "
);
-
C[0] =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите конечные показания счетчика : "
);
-
C[1] =
ushort
.Parse(Console.ReadLine());
-
Console.WriteLine(
"Сумма за электроэнергию : {0}"
, C.Sum());
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
class
Counter {
-
decimal
price;
-
public
Counter(
decimal
arg) {
-
price = arg;
-
}
-
private
ushort
[] arrayShow =
new
ushort
[2];
-
//индексатор
-
public
ushort
this
[
int
i] {
-
set
{
-
arrayShow[i] = value;
-
}
-
get
{
-
return
arrayShow[i];
-
}
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(arrayShow[1] - arrayShow[0]);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow() * price), 2);
-
}
}
class
Program {
-
public
static
int
Main() {
-
Console.WriteLine(
"оплата за электроэнергию\n"
);
-
Console.Write(
"Введите цену за 1 кВт/ч : "
);
-
decimal
price =
decimal
.Parse(Console.ReadLine());
-
Counter C =
new
Counter(price);
-
Console.Write(
"Введите начальные показания счетчика : "
);
-
C[0] =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите конечные показания счетчика : "
);
-
C[1] =
ushort
.Parse(Console.ReadLine());
-
Console.WriteLine(
"Сумма за электроэнергию : {0}"
, C.Sum());
-
Console.ReadKey();
-
return
0;
-
}
}
оплата за электроэнергию
Введите цену за 1 кВт/ч : 0,3084
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Сумма за электроэнергию : 30,84
Введите цену за 1 кВт/ч : 0,3084
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Сумма за электроэнергию : 30,84
условие в теле аксессора одномерного индексатора
Main.cs
using
System;
class
Counter {
-
decimal
price;
-
public
Counter(
decimal
arg) {
-
price = arg;
-
}
-
private
ushort
[] arrayShow =
new
ushort
[2];
-
//индексатор
-
public
ushort
this
[
int
i] {
-
set
{
-
if
(i<0 || i>arrayShow.Length) {
-
throw
new
Exception(
"Индекс находится за пределами границы массива"
);
-
}
-
else
{
-
arrayShow[i] = value;
-
}
-
}
-
get
{
-
if
(i<0 || i>arrayShow.Length) {
-
throw
new
Exception(
"Индекс находится за пределами границы массива"
);
-
}
-
else
{
-
return
arrayShow[i];
-
}
-
}
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(arrayShow[1] - arrayShow[0]);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow() * price), 2);
-
}
}
class
Program {
-
public
static
int
Main() {
-
Console.WriteLine(
"оплата за электроэнергию\n"
);
-
Console.Write(
"Введите цену за 1 кВт/ч : "
);
-
decimal
price =
decimal
.Parse(Console.ReadLine());
-
Counter C =
new
Counter(price);
-
Console.Write(
"Введите начальные показания счетчика : "
);
-
C[0] =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите конечные показания счетчика : "
);
-
C[1] =
ushort
.Parse(Console.ReadLine());
-
Console.WriteLine(
"Сумма за электроэнергию : {0}"
, C.Sum());
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
class
Counter {
-
decimal
price;
-
public
Counter(
decimal
arg) {
-
price = arg;
-
}
-
private
ushort
[] arrayShow =
new
ushort
[2];
-
//индексатор
-
public
ushort
this
[
int
i] {
-
set
{
-
if
(i<0 || i>arrayShow.Length) {
-
throw
new
Exception(
"Индекс находится за пределами границы массива"
);
-
}
-
else
{
-
arrayShow[i] = value;
-
}
-
}
-
get
{
-
if
(i<0 || i>arrayShow.Length) {
-
throw
new
Exception(
"Индекс находится за пределами границы массива"
);
-
}
-
else
{
-
return
arrayShow[i];
-
}
-
}
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(arrayShow[1] - arrayShow[0]);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow() * price), 2);
-
}
}
class
Program {
-
public
static
int
Main() {
-
Console.WriteLine(
"оплата за электроэнергию\n"
);
-
Console.Write(
"Введите цену за 1 кВт/ч : "
);
-
decimal
price =
decimal
.Parse(Console.ReadLine());
-
Counter C =
new
Counter(price);
-
Console.Write(
"Введите начальные показания счетчика : "
);
-
C[0] =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите конечные показания счетчика : "
);
-
C[1] =
ushort
.Parse(Console.ReadLine());
-
Console.WriteLine(
"Сумма за электроэнергию : {0}"
, C.Sum());
-
Console.ReadKey();
-
return
0;
-
}
}
оплата за электроэнергию
Введите цену за 1 кВт/ч : 0,3084
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Сумма за электроэнергию : 30,84
Введите цену за 1 кВт/ч : 0,3084
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Сумма за электроэнергию : 30,84