【发布时间】:2015-05-20 18:00:35
【问题描述】:
考虑这段代码:
public string Variable1 { get; set;}
public int Variable2 { get; set;}
public void Function()
{
// Has been Variable1 Initialized?
}
在函数内部,我想知道在函数调用之前是否已将值发送到变量 1 和变量 2,
即使已发送 DEFAULT 值,也没关系(字符串为 null,int 为 0)
【问题讨论】:
-
我认为这里的元答案是“所以不要那样做”。确保所有变量都在构造函数中初始化。
-
如果我有两个函数怎么办。 F1 和 F2,每个都使用两个变量。但是对于 F1,我必须确保函数的调用者已经为变量设置了值,即使这些值为空。对于F2我不管,我不想强迫他在构造函数中发送一些东西!
-
如果 F1 需要 调用者 设置变量,为什么不将它们作为参数传递给 F1?
-
这是关于清洁代码、凝聚力、我将变量 1 和变量 2 用于多个其他函数的事实,但只有在某些部分我想在它们没有被初始化的情况下抛出异常等等。 ..
-
如果您需要设置变量 1 和变量 2 以使 F1 运行,如果它们不是,您的对象处于不一致的状态。因此,您必须在对象准备好使用之前设置它们。也许你想分解你的对象来分解需求?
标签: c# .net variables instance-variables