2014-01-06 1 views
0
public readonly int items = 3; 
private System.Windows.Forms.TextBox[,] statsBonus = new System.Windows.Forms.TextBox[6, items]; 

Это дает мне эту ошибку в переменной «items». Как сделать так, чтобы я мог использовать переменную с именем «items» вместо того, чтобы писать 3 в каждом поле, которое использует число 3?Инициализатор поля не может ссылаться на метод или свойство нестатического поля

Если я хочу отредактировать это на коде, я не хочу менять номер 3 на что-то еще вручную. Я хочу использовать переменную, поэтому все, что мне нужно сделать, это просто изменить переменную, чтобы изменить все.

+0

общественные элементы только для чтения Int = 3; работает на моем компьютере. Какую версию .Net вы используете? – cubitouch

+1

Прочтите сообщение об ошибке, добавьте статику. –

+0

@cubitouch Как найти, какую версию я использую .NET? Я на Visual Studio 2012 – puretppc

ответ

3

Вместо использования readonly использования const

EDIT:

Для более обсуждаемой разницы между ними, проверить this SO answer

+0

Он работает нормально. Но в чем разница между этими двумя типами? – puretppc

+0

Значение @puretppc, * readonly * может быть установлено в * constructor *, а также инициализатором поля, но значение * const * файла может быть задано только с помощью инициализатора поля. –

1

Один вариант

переместить его в конструктор:

public ClassName() 
{ 
    statsBonus = new System.Windows.Forms.TextBox[6, items]; 
} 

Лучше вариант

Сделать itemsconst.

2

Вы должны использовать

const int items = 3; 
+0

Переменные Readonly могут назначаться только с помощью конструктора –

Смежные вопросы

 Смежные вопросы