c# 使一个类的对象被赋值为空时触发一个事件

比如有一个类:classa{publicintage{set;get;}publicstringname{set;get}publicvoidsetnull(){thro... 比如有一个类:

class a
{
public int age{set;get;}
public string name{set;get}

public void setnull()
{
throw new exception("error");
}
}

然后我实例化一个对象出来 a a1=new a();
然后当我a=null;的时候就希望触发setnull()事件,要怎么实现?
上面写错了,是a1=null;的时候
展开
 我来答
starj1
2013-06-20 · TA获得超过1576个赞
知道小有建树答主
回答量:765
采纳率:47%
帮助的人:268万
展开全部
要实现这个你得把a设为某个类b的属性,在b的a属性被赋值时判断新值是不是为空。
单单只有a不能实现。因为a本身要得知自己被释放,得等到GC对它进行操作,但那时候a已经被标注为垃圾,不再拥有执行权限。就象等着进火葬场的尸体,是不会说话啥的。
追问
嗯,想明白了,a1=null;只是把a1的指向设为空而已,其实并没对实体对象做什么改变,、

这么想的话要在类内部将对象设为null也是不行的,我本来想实现了IDisposable接口,在dispose里设置null呢。。。。
若无其事NIE
2013-06-20 · TA获得超过202个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:173万
展开全部
这个实现不了,语法是有规则的 ,不是你想怎么样就怎么样的。如果你想实现让a1为null,又报错,道是可以,直接写个方法就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yqsky3964
2013-06-20 · TA获得超过1875个赞
知道小有建树答主
回答量:1184
采纳率:0%
帮助的人:666万
展开全部
这样,空对象调用属性或者方法的时候会报错,未将对象引用到实例!你可以通过抓到异常来判断!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式