Lea*_*ner 2 .net c# using c#-4.0
我试图理解在C#中使用块.我可以在Using语句中创建一个自定义对象,如下所示,它不实现IDisposable接口吗?
Class A
{
}
using(A a = new A())
{
}
Run Code Online (Sandbox Code Playgroud)
它给出了错误,说"错误1'ConsoleApplication1.A':在using语句中使用的类型必须可以隐式转换为'System.IDisposable'"
如何更正此错误?我不想做A类:IDisposable
还有其他方法吗?或者强制要求我们需要在这些使用块内部使用的自定义对象中实现IDisposable Dispose方法?
编辑:我不期望MSDN和数千个网站中的定义.我只是想了解这个错误以及整改
使用块是语法糖,仅适用于IDisposable对象.
以下使用声明:
using (A a = new A()) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
语法糖是:
A a = null;
try {
a = new A();
// do stuff
}
finally {
if (!Object.ReferenceEquals(null, a))
a.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3661 次 |
| 最近记录: |