わかりました... Objective Cでは、静的メソッドでは「this」はインスタンスではなくクラスを参照するため、「new this()」を使用して基本クラスの静的メソッドからサブクラスを新しく作成できます。私が最初に見つけたとき、それはかなりクールな発見であり、私はそれを頻繁に使用しています.
ただし、C# では機能しません。くそ!
だから...静的基本クラスメソッド内からサブクラスを「新しく」作成する方法を知っている人はいますか?
このようなもの...
public class MyBaseClass{
string name;
public static Object GimmeOne(string name){
// What would I replace 'this' with in C#?
return new this(name);
}
public MyBaseClass(string name){
this.name = name;
}
}
// No need to write redundant constructors
public class SubClass1 : MyBaseClass{ }
public class SubClass2 : MyBaseClass{ }
public class SubClass3 : MyBaseClass{ }
SubClass1 foo = SubClass1.GimmeOne("I am Foo");
はい、コンストラクターを直接使用できる (通常は使用する) ことはわかっていますが、基本クラスで共有メンバーを呼び出す必要があるため、質問しています。繰り返しますが、Objective C でこれをやらせてください。C# もそうなることを願っています。
それで... テイカーはいますか?