title: factory method pattern in C#
body: <p><code>class A</code> implements <code>IC</code><br>
  <code>class B</code> implements <code>IC</code></p>
  
  <p><code>class Factory</code> has a method <code>GetObject(int x)</code>; <code>x=0</code> for <code>A</code>, <code>x=1</code> for <code>B</code>.</p>
  
  <p>How can I force the usage of <code>Factory.GetObject</code> method to create objects of type <code>A</code> and <code>B</code> and prevent something like <code>new A()</code>, which should be <code>Factory.GetObject(0)</code>?</p>