title: Call static method from generic abstract class without specifying a type
body: <p>I have an abstract class like this:</p>
  
  <pre><code>public abstract class BaseCamera&lt;TCamera&gt; : ICamera where TCamera : ManagedCameraBase
  {
      public static uint GetNumberOfCameras()
      {
          using (var bus = new ManagedBusManager())
          {
              bus.RescanBus();
              return bus.GetNumOfCameras();
          }
      }
  }
  </code></pre>
  
  <p>And want to call it like this:
  <code>BaseCamera.GetNumberOfCameras()</code></p>
  
  <p>It makes sense to me, because since this is an abstract class, only the concrete children classes must choose a <code>TCamera</code>, and the base class wants to get the number of all cameras, no matter they type. </p>
  
  <p>However, the compiler does not approve:</p>
  
  <blockquote>
    <p>Using the Generic type 'BaseCamera' requires 1 type
    arguments.</p>
  </blockquote>
  
  <p>Is there some way around it or do I need to create a new class just for this?</p>
  
  <p>I think it is worth pointing out that <code>ManagedCameraBase</code> is a class from an external API I'm wrapping. Therefore, I do not want to include it in any of my calls for <code>BaseCamera</code> and that is why I'm trying to avoid specifying a type.</p>