title: C# casting and inheritance
body: <p>I have an object that I pass around a lot.</p>
  
  <p>I need to add a piece of data to it and cannot modify the base class</p>
  
  <p>So I have </p>
  
  <pre><code>static OriginalThing GetNewThing()
  {
    return new OriginalThing();
  }
  </code></pre>
  
  <p>Now i want to add my piece of data</p>
  
  <pre><code>class EnhancedThing : OriginalThing
  {
    string name;
    static EnhancedThing GetNewThing(string name)
    {
       EnhancedThing ething = new OriginalThing();   &lt;---doesnt work even if i cast it
       ething.Name = name;
    }
  }
  </code></pre>
  
  <p>How do I do this?</p>