2013-02-18 1 views
2

Я пишу приложение winform C# в monodevelop, и мне нужно установить содержимое нескольких строк многострочного текстового поля на определенное строковое значение, используя свойство Lines. Так я написал этот код в Visual Studio не генерирует исключение и работать без проблем, но в моно не работает:строки свойств текстового поля в C# с использованием Monodevelop

public string[] newLines = new string[36]; 

public void Main_Form_Load(object sender, EventArgs e) 
    { 
     newLines[3] = "</CsOptions>"; 
     textBox1.Lines = newLines; 
    } 

в частности istruction textBox1.Lines = newLines; дают NullReferenceException и когда я удалить его, исключение истекает ,

+0

Что вы подразумеваете под "delete it"? –

+0

пример объявления как комментарий с «//» – Giu

+0

newLines или NewLines? у вас есть и – mcalex

ответ

1

В массивах каждый элемент инициализируется значением по умолчанию. В вашем случае каждый элемент (который имеет тип string) равен , номинированному на null, который является различными из пустой строки "".

Хотя и .NET, и mono должны быть совместимыми, в данном конкретном случае они, вероятно, нет. Есть, вероятно, некоторые различия в обработке TextBox.Lines собственности между ними, возможно, случай, когда mono не проверяет на null, пока .NET делает.

Вам следует избегать null и всегда инициализировать массив. Например:

for(int i = 0; i < newLines.Length; i++){ 
    newLines[i] = ""; 
} 
+0

спасибо Alvin, поэтому вы говорите мне, что мне нужно инициализировать массив пустым строком, а затем обновить до конкретных значений эти строки? – Giu

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