【发布时间】:2017-11-08 05:50:13
【问题描述】:
如果有人能指出我哪里错了。
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;
}
编译器说未分配的局部变量。 提前致谢
【问题讨论】:
-
性别不是
'm'会怎样? -
对不起,它不完整的m是男性的缩写,当它不是m时它会生成一个女性名字。
-
@Ken 的评论向您暗示了错误消息的原因。编译器非常坦率地告诉您,即使您返回它的值,该方法也会导致未分配
name变量的执行路径。当gender变量不等于'm'时,您认为应该返回什么值? -
当我添加 else 路径时,它仍然显示之前的错误。当我设置字符串名称 = string.Empty;它解决了这个问题。