public void GenericMethods() { var disposer = CreateDisposer <ImplementsIDisposable>(); //It simplifies Disposer creation var implementsIDisposable = new ImplementsIDisposable(); var disposeSucceded = disposer != null && disposer.Dispose(implementsIDisposable); //You can use Disposer as in the previous method Assert.IsTrue(disposeSucceded); }
public void GenericReflection() { var disposer = CreateDisposer(typeof(ImplementsIDisposable)) as Disposer <ImplementsIDisposable>; //You can specify at runtime the Generic Type you want to create var implementsIDisposable = new ImplementsIDisposable(); var disposeSucceded = disposer != null && disposer.Dispose(implementsIDisposable); //You can use Disposer as in the previous method Assert.IsTrue(disposeSucceded); }
public void GenericConstrains() { //Open generic Type Parameters var disposer = new Disposer <ImplementsIDisposable>(); //Disposer will only accept Types which implement IDisposable var implementsIDisposable = new ImplementsIDisposable(); var disposeSucceded = disposer.Dispose(implementsIDisposable); Assert.IsTrue(disposeSucceded); }