title: Calling subclass constructor from static base class method
body: <p>Ok... in Objective C you can new up a subclass from a static method in the base class with 'new this()' because in a static method, 'this' refers to the class, not the instance.  That was a pretty damn cool find when I first found it and I've used it often.</p>
  
  <p>However, in C# that doesn't work. Damn!</p>
  
  <p>So... anyone know how I can 'new' up a subclass from within a static base class method?</p>
  
  <p>Something like this...</p>
  
  <pre><code>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");
  </code></pre>
  
  <p>And yes, I know I can (and normally would) just use the constructors directly, but we have a specific need to call a shared member on the base class so that's why I'm asking.  Again, Objective C let's me do this. Hoping C# does too.</p>
  
  <p>So... any takers?</p>