如何为抽象类对象使用未分配的局部变量



我的文本框有一个text_changed函数。我希望我的软件读取一个字符,并检查它是否是序列字符'/n'。由于顺序字符被认为是单个字符,我尝试使用TextReader.Equals('\n'),但出现了一个错误,显示

使用未分配的本地变量"读取器"

TextReader是一个抽象类。我试图使用TextReader reader = new TextReader初始化它,但出现了一个错误,说我无法初始化抽象类。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    System.IO.TextReader reader;
    if(reader.Equals(null))
    {
        his_Textbox.Text = My_Textbox.Text;
    }
}

请告诉我我能做些什么来阻止这个错误。

您需要用TextReader的具体实现来初始化它,比如StringReader。

其次,也许您不了解C#中的引用类型。变量只是一个对象的引用(指针)。没有初始化,就没有对象,只有一个空变量。

尝试:

using(var reader = new System.IO.StringReader(whateverText)) {
      //...
}

http://msdn.microsoft.com/en-us/library/system.io.stringreader(v=vs.110).aspx

但根据你的需要,你甚至可能不需要一个读者。只需使用正则表达式或字符串API来搜索文本框。

最新更新