title: How to name C# source files for generic classes
body: <p>I am trying to stick to general naming conventions such as those described in <a href="http://msdn.microsoft.com/en-us/library/ms229042.aspx" rel="noreferrer">Design Guidelines for Developing Class Libraries</a>. I put every type into its own source file (and partial classes will be split across several files as described in question <a href="https://stackoverflow.com/questions/1478610/naming-conventions-for-partial-class-files">Naming Conventions for Partial Class Files</a>), using the name of the type as the file name.</p>
  
  <p>Examples:</p>
  
  <pre><code>namespace Demo.Bla                         //  project
  {
      enum FlowDirection { }                 //  in file FlowDirection.cs
      class LayoutManager { }                //  in file LayoutManager.cs
  }
  
  namespace Demo.Bla.LayoutControllers       //  folder LayoutControllers in project
  {
      class StackPanelLayoutController { }   //  in file LayoutControllers/StackPanelLayoutController
  }
  </code></pre>
  
  <p>But I am not sure I've come up with a clever way of naming source files which contain generic classes. Say that I have following classes, for instance:</p>
  
  <pre><code>namespace Demo.Bla.Collections             //  folder Collections
  {
      class Map&lt;T&gt; { }                       //  in file Map.cs (obviously)
      class Bag { }                          //  in file Bag.cs (obviously)
      class Bag&lt;T&gt; : Bag { }                 //  also in file Bag.cs ???
  }
  </code></pre>
  
  <p>Should I put the code of both the non-generic and the generic <code>Bag</code> classes into the same <code>Bag.cs</code> file? What are your habits?</p>