3

我正在monodevelop 中编写ac#winform 应用程序,我必须使用属性Lines 将多行文本框的几行的内容设置为特定的字符串值。所以我写了这段代码,在 Visual Studio 中不会产生异常并且可以正常工作,但在单声道中不起作用:

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

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

特别是指令textBox1.Lines = newLines;给出了一个空引用异常,当我删除它时,异常过期。

4

1 回答 1

1

数组将每个元素初始化为其默认值。在您的情况下,每个元素(类型为string)都初始化为null,这与空字符串不同""

尽管 .NET 和 mono都应该兼容,但在这种特殊情况下,它们可能不兼容。两者之间的处理属性可能存在一些差异TextBox.Lines,一个可能的情况是 mono 不检查null而 .NET 进行检查。

您应该避免null这样做,并始终初始化数组。例如:

for(int i = 0; i < newLines.Length; i++){
    newLines[i] = "";
}
于 2013-02-18T12:58:09.017 回答