提问人:Satyam Bendapudi 提问时间:10/20/2020 更新时间:10/20/2020 访问量:69
调用方法时的 C# 运行时 NullReferenceException [duplicate]
C# run-time NullReferenceException when calling method [duplicate]
问:
这里的 C# 新手(多年来更多的 C++)正在为一个简单的问题而苦苦挣扎,但无法诊断。
类定义:
public class myClass{
String prop1, prop2,... propn;
public void setValues(String input){
prop1 = input.Substring(1,5);
prop2 = input.Substring(6,10);
...
propn = input.Substring((n-1)*5+1,n*5));
}
public getProp1() {return prop1;}
public getProp2() {return prop2;}
...
public getPropn() {return propn;}
}
程序中
myClass[] Entries = new myClass[50];
int i=0;
String Line
while(i<=49){
Line = inputFile.ReadLine(); //<--System.NullReferenceException thrown here at run-time
Entries[i++].setValues(Line);
}
如果能找出这个运行时异常,我们将不胜感激。我正在使用 Visual Studio 2019,这是一个控制台应用程序......如果这是相关的。
提前致谢!
答:
0赞
Guru Stron
10/20/2020
#1
这一行:
myClass[] Entries = new myClass[50];
创建一个用 的值填充 's 的数组。因此,将返回导致问题中的错误。您可以使用以下命令创建您类型的对象,如下所示:null
Entries[i++]
null
new
while(i<=49)
{
Line = inputFile.ReadLine();
var instance = new myClass();
instance.setValues(Line);
Entries[i++] = instance ;
}
评论
inputFile