以下代码导致使用未分配的局部变量"numberOfGroups":
int numberOfGroups;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Run Code Online (Sandbox Code Playgroud)
但是,这段代码工作正常(但ReSharper说这= 10是多余的):
int numberOfGroups = 10;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么,还是编译器不喜欢我||?
我把它缩小到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 …Run Code Online (Sandbox Code Playgroud) 下面这个非常有趣的问题, 这是源于这个问题-
我想退后一步 (删除动态环境):
看看这段代码:( 这个的一个变种)
void Main()
{
int a;
int b = 100;
Console.WriteLine(X.M(1, out a));
}
public class X
{
public int H=0;
public static X M(int x, out int y)
{
Console.WriteLine("x = "+x);
y = x;
return new X(x);
}
public X(){}
public X(int h)
{
H=h;
}
public static bool operator false(X x) {Console.WriteLine("in false operator for "+ x.H); return true; }
public static bool operator true(X …Run Code Online (Sandbox Code Playgroud)