我遇到了一个简单的问题,但无法找到解决方案:
是否可以检查是否已分配给定变量?
int i;
// stuff happens
if (someTest(i));
i = 0;
Console.Write("now i is assigned for sure")
答案 0 :(得分:4)
对于值类型,变量始终已分配。那里的是某种值。即便如此,如果您在分配之前尝试读取变量,编译器会告诉您并显示错误:您的代码将无法编译。
答案 1 :(得分:0)
如果您需要知道给定的字段集,您可以使用Property来控制该字段。在setter中你可以控制它,例如在下面的例子中isSet布尔标志在值设置时更新。如果需要根据其他值重置标志,可以在setter中添加另一个条件。
private int i;
private bool isSet;
public int IProp
{
get { return i;}
set { isSet =true; i=value; }
}
// test
Console.WriteLine("Is Set:" + isSet);
IProp = 0;
Console.WriteLine("Is Set:" + isSet);
//results
//Is Set:False
//Is Set:True