using System;
public class UsingTest : IDisposable
{
bool disposed;
public UsingTest()
bar = 6;
}
int bar;
public int Bar {
get {
if (disposed)
throw new ObjectDisposedException("disposed!");
return bar;
public void Dispose()
this.disposed = true;
Console.WriteLine("Disposing");
public class Program
static UsingTest Test()
using (var x = new UsingTest())
return x;
public static void Main()
var foo = Test();
Console.WriteLine(foo.Bar);