小编max*_*xxx的帖子

C#using语句的替代语法来自动处理对象?

我想知道是否有人能想出一种方法来实现一个像C#中的using语句一样工作但机制更清晰的机制.

C++/CLR中,您可以编写

MyClass NewObject;
Run Code Online (Sandbox Code Playgroud)

MyClass这是一个托管类.一旦变量超出范围Dispose将被调用.从本质上讲,它与C#一样,using但是以更好的方式.

所以,而不是写作

using (MyClass NewObject1=new MyClass())
{
    xxxx;
    using (MyClass NewObject2=new MyClass()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

(我认为这看起来不是很干净,为每个新变量打开一个新块也很繁琐)

我更喜欢这样的东西:

autodispose MyClass NewObject1=new MyClass();
xxxx;
autodispose MyClass NewObject2=new MyClass();
Run Code Online (Sandbox Code Playgroud)

有人认为可以实现这样的东西吗?似乎AOP或代码契约的框架使用注入代码的机制,但我不确定他们是如何做到的.

.net c# idisposable

3
推荐指数
2
解决办法
3293
查看次数

标签 统计

.net ×1

c# ×1

idisposable ×1