如何解决简单-数组无法在内部循环-C#
我有这段代码尝试输出已经输入的列表并要求匹配的成绩。 该数组有效,当我检查它的长度时,它与输入匹配。
我已经在一个类中声明了字符串数组。
static string[] nameArray;
static void ConvertListToArray()
{
string[] nameArray = names.ToArray();
arrayLength = nameArray.Length;
}
static void AskNameForGrade()
{
for (int i = 0; i < arrayLength; i++)
{
Console.WriteLine($"Please enter grade for {nameArray[i]}");
}
}
给我错误的部分是{nameArray[i]}
错误消息是
“ System.NullReferenceException:'对象引用未设置为 对象的实例。'“
我认为数组为空, 但如果我在输入尺寸等于输入尺寸之前检查尺寸(即> 1)
我敢肯定这很简单,但是任何帮助将不胜感激。
解决方法
不管其他任何问题,该问题很可能是 static nameArray
field 尚未被初始化 ,但是您初始化一个具有相同名称的局部 scoped 变量。这就是为什么静态成员 arrayLength
具有您要假定的值,并且静态成员 nameArray
被未初始化和null
。从来没有设置过...
我相信会有编译器警告提醒您该问题。
局部变量'nameArray'隐藏字段
string[] blah blah blah
解决方法是删除局部变量
static string[] nameArray;
static void ConvertListToArray()
{
//string[] nameArray = names.ToArray();
nameArray = names.ToArray(); // set your static member instead
arrayLength = nameArray.Length;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。