title: Collection of Generic Interfaces
body: <p>I have a generic interface like this:</p>
  
  <pre><code>public interface IHardwareProperty&lt;T&gt;{
  bool Read();
  bool Write();
  }
  </code></pre>
  
  <p>Which is "passed through" an abstract base class:</p>
  
  <pre><code>public abstract class HardwareProperty&lt;T&gt;:IHardwareProperty&lt;T&gt;{
  //Paritally implements IHardwareProperty (NOT SHOWN), and passes Read and Write through
  //as abstract members.
      public abstract bool Read();
      public abstract bool Write();
  }
  </code></pre>
  
  <p>and is completed in several inheriting classes that use different generic arguments</p>
  
  <pre><code>CompletePropertyA:IHardwareProperty&lt;int&gt;
  {
      //Implements Read() &amp; Write() here
  }
  
  CompletePropertyBL:IHardwareProperty&lt;bool&gt;
  {
      //Implements Read() &amp; Write() here
  }
  </code></pre>
  
  <p>I'd Like to store a bunch of completed properties of different types in the same collection. 
  Is there a way to do this without resorting to having a collection of <code>object</code>s? </p>