Здравтсвуйте, не получается отловить исключение. Когда использую оператор неявного приведения в строку - выбрасывает исключение. Вот код, помогите чем сможете:
public class BoolMatrix
{
private bool[,] matrix;
public bool this[int a, int b]
{
get
{
return matrix[a, b];
}
set
{
if (value)
Count++;
matrix[a, b] = value;
}
}
public BoolMatrix(int width, int heigth)
{
matrix = new bool[width, heigth];
Length = width*heigth;
Heigth = heigth;
Width = width;
Count = 0;
}
static public implicit operator string(BoolMatrix a)
{
string s = "";
for (int i = 0; i < a.Width; i++)
{
for (int j = 0; j < a.Heigth; j++)
{
s += a[i, j] + " ";
}
s += '\n';
}
return s;
}
}
Это был библиотечный класс, а теперь сам вызов оператора:
string s = new BoolMatrix(9, 6);
Кстати, если задать одинаковое кол-во строк и столбцов - работает как часы.
Тут у вас ширина - высота.
matrix = new bool[width, heigth];
А в цикле прогоняете сначала по Height, а нужно, как понимаю, по Width вот так:
for (int i = 0; i < a.Width; i++)
{
for (int j = 0; j < a.Heigth; j++)
{
s += a[i, j] + " ";
}
s += '\n';
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости