在 C# 中,一个对象是否有可能自杀,即将其自身设置为 null ?
这=空;没用……
想要这样的原因是,例如,如果对象通过构造函数获取数据,这不是好的(出于任何原因),那么它可能比垃圾更好。
状态标志是一种解决方法,但这是我的第二个最佳选择。
我建议你从构造函数中抛出一个ArgumentException
,以防你从调用者那里收到有问题的数据。然后在调用代码中捕获它。
不,对象不能将自己设置为 null,它是可以设置为 null 的引用。
只是扔一个ArgumentException
insteed
如果对象需要外部数据来完成它的构造并且得到一些不可用的东西(或根本没有数据),那么你需要做的是抛出一个适当的异常。
更改 的值this
是非法的,即使不是这样也不会带来任何好处:调用者仍然必须确定在构造过程中发生了什么。
您应该在构造函数中抛出异常;这将防止对象被一起创建:
class MyClass {
public MyClass(string value) {
if (value == null)
throw new ArgumentNullException("value");
...
}
}
this
在 C++ 中,您可以随心所欲地玩。
在 C# 中 - 仅以受限方式。例如,您可以将struct
's 分配给某物,但不能将class
'this 分配给某物