我想知道是否有人能想出一种方法来实现一个像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或代码契约的框架使用注入代码的机制,但我不确定他们是如何做到的.