誰かが間違っていると指摘できたら。ランダムな名前ジェネレータを作成しようとしていて、割り当てられていないローカル変数を取得しようとしました
public string GenerateName(char gender)
{
string name;
Random rand = new Random();
if (gender == 'm')
{
string[] maleNames = File.ReadAllLines(Directory.GetCurrentDirectory() + @"\ModifiedMalesNamesList.txt");
string[] lastNames = File.ReadAllLines(Directory.GetCurrentDirectory() + @"\ModifiedLastNamesList.txt");
name = maleNames[rand.Next(0, maleNames.Length - 1)] + " " + lastNames[rand.Next(0, lastNames.Length - 1)];
return name;
}
else
{
}
return name;
}
コンパイラは、割り当てられていないローカル変数を示します。あなたが値で初期化しない限り、あなたは文字列name
を使用することはできません
string name = string.Empty;
:これに
string name;
:このことから
:事前
性別が「m」でない場合はどうなりますか? –
申し訳ありませんが、不完全なmは、女性の名前を生成するmでない場合、男性の略です。 – DarkxDivinityX
@ Kenさんのコメントは、エラーメッセージの原因をあなたに示唆しています。コンパイラは、あなたが値を返すにもかかわらず、 'name'変数が割り当てられていないメソッドを実行する実行パスがあることを、明示的に率直に言っています。 'gender'変数が' 'm ''に等しくないとき、どのような価値が返されるべきだと思いますか? –