以下のクラス「混乱」の2つのメソッドは同じですか?
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>());
}
}
それらは異なるILを生成しますが、同僚を混乱させる以外に、「ストレートアップ」バージョン以外の汎用バージョンを作成する理由はあります:)