在C#中,对象是否有可能自杀,将其自设为null?
此= NULL;不起作用....
想要这样的话的原因是,例如,对象获取via构造函数中的数据并不好(出于任何原因),那么最好是null而不是垃圾。
状态标志是一种解决方法,但这是我的第二个最佳选择。
答案 0 :(得分:10)
我建议你从构造函数中抛出一个ArgumentException
,以防你从调用者那里收到有问题的数据。然后在调用代码中捕获它。
答案 1 :(得分:8)
没有对象不能将自己设置为null,它是可以设置为null的引用。
抛出ArgumentException
insteed
答案 2 :(得分:5)
如果对象需要外部数据才能完成构造并使某些东西无法使用(或者根本没有数据),那么你需要做的就是抛出适当的异常。
更改this
的值是非法的,即使不是,它也不会带来任何好处:来电者仍然必须确定施工期间发生的事情。
答案 3 :(得分:3)
您应该在构造函数中抛出异常;这将阻止对象一起创建:
class MyClass {
public MyClass(string value) {
if (value == null)
throw new ArgumentNullException("value");
...
}
}
答案 4 :(得分:1)
在C ++中,您可以按照this
的方式使用。
在C#中 - 仅限制使用。例如,您可以将struct
分配给class
',而不是分配给{{1}}'