Если вы используете оператор using
, то вложенный тип должен уже реализовывать IDisposable
, иначе компилятор выдаст ошибку.Поэтому считайте, что реализация IDisposable является обязательным условием использования.
Если вы хотите использовать оператор using
для своего пользовательского класса, то вы должны реализовать для него IDisposable
.Однако делать это отстает, потому что нет смысла делать это ради этого.Только если у вас есть что-то, что можно утилизировать как неуправляемый ресурс, вы должны его реализовать.
// To implement it in C#:
class MyClass : IDisposable {
// other members in you class
public void Dispose() {
// in its simplest form, but see MSDN documentation linked above
}
}
Это позволяет вам:
using (MyClass mc = new MyClass()) {
// do some stuff with the instance...
mc.DoThis(); //all fake method calls for example
mc.DoThat();
} // Here the .Dispose method will be automatically called.
Фактически это то же самое, что писать:
MyClass mc = new MyClass();
try {
// do some stuff with the instance...
mc.DoThis(); //all fake method calls for example
mc.DoThat();
}
finally { // always runs
mc.Dispose(); // Manual call.
}