} else {

ErrFlag = true; return 0;

}

}

// Это аксессор set. set {

if(ok(indexl, index2))    {

a[indexl, index2] = value;

ErrFlag = false;

}

else ErrFlag = true;

}

}

// Возвратить логическое значение true, если // индексы находятся в установленных пределах, private bool ok(int indexl, int index2) {

•if (indexl >= 0 & indexl < rows & index2 >= 0 & index2 < cols) return true;

return false;

}

}

// Продемонстрировать применение двумерного индексатора, class TwoDIndexerDemo { static void Main() {

FailSoftArray2D fs = new FailSoftArray2D(3, 5); int x;

// Выявить скрытые сбои.

Console.WriteLine('Скрытый сбой.'); for (int i=0; i < 6; i++) fs[i, i]=i*10;

for(int i=0; i < 6; i++)    {

x = f s [ i, i ] ;

if(x != -1) Console.Write (x + ' ');

}

Console.WriteLine ();

// А теперь показать сбои.

Console.WriteLine('пСбой с уведомлением об ошибках.'); for(int i=0; i < 6; i++)    {

fs[i,i] = i *10; if(fs.ErrFlag)

Console.WriteLine('fs[' + i + ', ' + i + '] вне границ

}

for(int i=0; i < 6; i++)    {

x = f s [ i, i ] ;

if(!fs.ErrFlag) Console.Write(x + ' ');

else

Console.WriteLine('fs[' + i + ', ' + i + '] вне границ');

}

}

}

Вот к какому результату приводит выполнение этого кода:

Скрытый сбой.

0 10 20 0 0 0

Сбой с уведомлением об ошибках.

fs[3, 3] вне границ

fs[4, 4] вне границ

fs[5, 5] вне границ

0 10 20 fs[3, 3] вне границ

fs[4, 4] вне границ

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату