Класове/конструктори инстанцииране
Привет колеги,
нуждая се от помощ за инстанцирането на класове.
Примерен много опростен клас (абстрахирайте се от евтл синтактични грешки, всичко минава през компилатора ):
class BitArray
{
private BigInteger b;
private int maxIndex=1;
public BitArray(string input)
{ this.b = BigInteger.Parse(input); }
public int MaxIndex { get { return this.maxIndex; } }
}
Проблемът:
Кода (в main метода) долу дава грешка "USe of unassigned local variable b" в последния ред.
BitArray b;
string input;
input = Console.ReadLine();
b = new BitArray(input);
int myIndex = random.Next(b.MaxIndex);
за да тръгне, трябва да направя това (редовете с удивителните) :
BitArray b;
BitArray myBit = new BitArray("0"); !!!!!!!!!!
string input;
input = Console.ReadLine();
b = new BitArray(input);
myBit = b; !!!!!!!!!
int myIndex = random.Next(myBit.MaxIndex); !!!!!!!!!!!!!!!!!!
Въпросът ми е защо компилатора мрънка за първия варинат, нали b = new BitArray(input); вика конструктора , респективно инициализира променливата????
Блгодаря, прав си.
Оригинално беше в try/catch конструкция.
Скрих я да не четете излишни 30 реда код, явно погрешно :)