检查是否已分配变量

时间:2016-11-19 01:18:53

标签: c#

我遇到了一个简单的问题,但无法找到解决方案:

是否可以检查是否已分配给定变量?

int i;
// stuff happens
if (someTest(i));
    i = 0;
Console.Write("now i is assigned for sure")

2 个答案:

答案 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