日期:2014-05-20  浏览次数:20682 次

这样的功能用C#应该怎么写?
我想在程序的执行过程中无论以什么方式离开某一个函数的时候,调用一个特定的方法。

比如在C++中CWaitCursor类

void   MyFunc()
{
        CWaitCursor   waitCursor;
        ......
}

由于析构函数会在离开函数前被调用,所以可以在那里做我想做的事情。
但在C#中用什么样的方法才能达到同样的目的?


------解决方案--------------------
void MyFunc()
{
Cursor curCursor = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;

try
{
//Do Something
}
finally
{

Cursor.Current = curCursor;
}
}

------解决方案--------------------
这个finally,我经常拼错,英文比较差,
好在IDE会自动标示出关键字
我只记得有个字母是重复的,呵呵
------解决方案--------------------
我长期以来是把类实例对象置NULL 然后用GC.Collect强制回收资源 然后类的析构函数就可以被执行了 楼主可以考虑下 说实在的你说的离开什么的问题我没搞明白 但是.NET强制回收资源可以解决析构函数按预定时间执行的问题
------解决方案--------------------
你可以override Dispose方法,最后都是通过这个方法来释放的,当然也同样可以用析构函数。
------解决方案--------------------
一般写在Close()里面, 析构函数还是有的, 但因为.net的基本机制, 析构函数的调用会导致很大的效率降低
------解决方案--------------------
使用using关键字来一个确定回收,这样就可以保证资源被回收。不过太麻烦。使用Spring.NET做AOP或许方便一点。
------解决方案--------------------
try finally