Хорошо... в Objective C вы можете создать подкласс из статического метода в базовом классе с помощью "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 позволяет мне это сделать. Надеюсь, С# тоже.
Так... есть берущие?