are the two methods in the class "Confused" below the same?
class MyClass
{
    public override string ToString()
    {
        return "I am confused now";
    }
}
class Confused
{    
    public MyClass GetMyClass()
    {
        return new MyClass();
    }
    public T GetMyClass<T>() where T : MyClass, new()
    {
        return System.Activator.CreateInstance<T>();
    }
}
class Program
{
    static void Main()
    {
        Confused c = new Confused();
        System.Console.WriteLine(c.GetMyClass());
        System.Console.WriteLine(c.GetMyClass<MyClass>());
    }
}
They produce different IL, but is there any reason to write the generic version other than the 'straight up' version other than to confuse the heck out of collegues :)