【发布时间】:2017-11-05 13:12:35
【问题描述】:
我目前正在尝试通过名称搜索对象数组,并希望输出是数组的索引。但是,当我尝试调用我的搜索函数时发生错误(不包含定义)。我不知道如何解决这个问题。
我对编程很陌生,如果我做错了一切,请原谅我,请尽可能简单。
class Program
{
static void Main(string[] args)
{
//Initialize array based on number of records
RecordArray.Init(5);
//Calling FindByName
RecordArray.FindByName (RecordArray.rArray, "Name3");
}
}
public class RecordClass
{
//Declaring member variables
public string Name;
public int Number;
public string Email;
}
public class RecordArray
{
public static void Init(int Size)
{
//RNG for phone numbers
Random Rnd = new Random();
//Creating an array of RecordClass
RecordClass[] rArray = new RecordClass[Size];
//Loop through the array
for(int i = 0; i < rArray.Length; i++)
{
rArray[i].Name = "Name" + i;
rArray[i].Number = Rnd.Next();
rArray[i].Email = rArray[i].Name + "@gmail.com";
}
}
public static int FindByName(RecordClass[] rArray, string Name)
{
//Loop through rArray to find if Name matches. If match, return index. Otherwise, return -1.
for(int i = 0; i < rArray.Length; i++)
{
if (rArray[i].Name == Name)
{
return i;
}
}
return -1;
}
}
}
【问题讨论】:
-
此处粘贴代码的第 9 行,位于 RecordArray.FindByName (RecordArray.rArray, "Name3");错误发生在 rArray 下,它说:“RecordArray”不包含“rArray”的定义
-
问题正是错误消息所说的。您尚未在班级中声明名为
rArray的成员。请更仔细地阅读错误消息。一旦您不再将每个错误都视为具有相同的“编译器不会编译您的代码”含义,您可能会惊讶于它们的信息量。