以下代码导致 使用未分配的局部变量“ numberOfgroups”:
int numberOfGroups;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
但是,这段代码工作得很好(尽管 锐利者说 = 10
是多余的) :
int numberOfGroups = 10;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
是我遗漏了什么,还是编译器不喜欢我的 ||
?
我已经把范围缩小到导致问题的 dynamic
(options
在我上面的代码中是一个动态变量)。问题仍然存在,为什么我不能这么做?
编译代码 没有:
internal class Program
{
#region Static Methods
private static void Main(string[] args)
{
dynamic myString = args[0];
int myInt;
if(myString == null || !int.TryParse(myString, out myInt))
{
myInt = 10;
}
Console.WriteLine(myInt);
}
#endregion
}
然而,这个代码 是的:
internal class Program
{
#region Static Methods
private static void Main(string[] args)
{
var myString = args[0]; // var would be string
int myInt;
if(myString == null || !int.TryParse(myString, out myInt))
{
myInt = 10;
}
Console.WriteLine(myInt);
}
#endregion
}
我没想到 dynamic
也是其中一个因素。