继我的第一篇,今天我看到的东西在C#中使用块凉爽。我们都知道,在使用块,通常我们创建了一个类型实现IDisposable如下所示:public class MyClass : IDisposable
{
public void Dispose()
{
Console.WriteLine("Disposed");
}
}
使用代码看起来像:{C}
事实上,这些天,我一直做着同样的WRT (在我所有的代码)块。但今天我才知道(是的,一个真正的耻辱),你并不总是需要创建一个类型,而实际上调用它的方法。让我告诉你一个相同的代码:public class MyClass : IDisposable
{
public void Dispose()
{
Console.WriteLine("Disposed");
}
}
public class UsingClass
{
public static MyClass SomeMethod()
{
return new MyClass();
}
}
public partial class Program
{
public static void Main()
{
using (UsingClass.SomeMethod()){ }
Console.ReadLine();
}
}
在这里,编译器已经有点聪明,因为它有效地看到SomeMethod的()方法的返回类型,返回一个类型实现IDisposable接口,因此它并没有发出任何错误。只是删除实现IDisposable的类型,那么你会得到错误。
欢迎您的意见。 {S0的}
快乐编码。
:{A} {S8的}