如何使用"使用"语句?

Ste*_*eve 0 .net c# using

我正在尝试利用using以下代码中的语句:

Uri uri = new Uri("http://localhost:50222/odata"); 
var container = new CourseServiceRef.Container(uri);

CourseServiceRef.NotNeeded newTempUser = new CourseServiceRef.NotNeeded()
    { 
       Email = model.UserName,
       Username1 = model.UserName 
    };             
container.AddToNotNeededs(newTempUser);
container.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

但是这不会编译.为什么?

Cro*_*ono 9

using语句 - 不与using指令混合- 用于实现IDisposable接口的对象,以便它们在代码块的末尾自动处理:

using (var toto = new MyDisposableClass())
{
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

如果你的任何类确实实现了这个接口(或者继承了那个接口),你可以使用上面的语法来确保调用Dispose()方法.您不能将using块用于不实现此接口的对象,它不会编译.

从本质上讲,这将与以下相同:

var toto = new MyDisposableClass()

try
{
    // do stuff
}
finally
{
    if (toto != null) ((IDisposable)toto).Dispose();
}
Run Code Online (Sandbox Code Playgroud)

这里唯一的区别是,在第一个场景中,toto范围在using块的末尾死亡.