public class SomeClass { } public class Foo<T> where T : class { public T Do (object o) { return o as T; } } class Driver { public static void Main () { Foo<SomeClass> f = new Foo<SomeClass> (); f.Do ("something"); } }