現在、名前でオブジェクトの配列を検索しようとしていますが、出力を配列のインデックスにしたいとします。ただし、検索機能を呼び出そうとしたときにエラーが発生しました(定義は含まれていません)。私はこの問題をどのように解決するか考えていません。C#:クラスに定義がありません
私は非常にプログラミングに新しいので、私はすべて間違っていると私を許し、できるだけシンプルなものを保ってください。あなたは文句を言わない、それへのアクセス権を持っているので、
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;
}
}
}
コードの行は、例外をスローします:まず、あなたが
rArray
の静的メンバを作成する必要があり、第二、あなたはInit
方法でそれを初期化?例外が発生したときのさまざまな変数の値は何ですか? –貼り付けられたコードの9行目は、 にあります。 RecordArray.FindByName(RecordArray.rArray、 "Name3"); エラーがrArrayで発生し、以下のように表示されます。 'RecordArray'に 'rArray'の定義が含まれていません – deadsea2004
問題はエラーメッセージの内容とまったく同じです。あなたはクラス内で 'rArray'という名前のメンバーを宣言していません。エラーメッセージをより注意深くお読みください。同じ「コンパイラがコードをコンパイルしない」という意味で過去のあらゆるエラーを処理してしまえば、どれほど有益なのかに驚くかもしれません。 –