コンストラクタはOOPの中で特別扱いされすぎている。普通Fooクラスのコンストラクタは
public Foo(){
// -------
}
となる。んで、コンストラクタを特別扱いしないで書くとどうなるか考えた。
つまりは戻り値の型(自身が含まれるクラスのインスタンス)の指定があり、そのメソッドの中で自身が含まれるクラスのインスタンシングをしてリターンしている
ことを明示しているstaticなメソッド。
public static Foo Foo(){
Foo foo = base.CreateInstance(typeof(Foo));
// -------
return foo;
}
こんなこと毎日考えてる俺にもちゃんと友達はいます。