title: C# "Constant Objects" to use as default parameters
body: <p>Is there any way to create a constant object(ie it cannot be edited and is created at compile time)?</p>
  
  <p>I am just playing with the C# language and noticed the optional parameter feature and thought it might be neat to be able to use a default object as an optional parameter. Consider the following:</p>
  
  <pre><code>//this class has default settings
  private const SettingsClass DefaultSettings = new SettingsClass ();
  
  public void doSomething(SettingsClass settings = DefaultSettings)
  {
  
  }
  </code></pre>
  
  <p>This obviously does not compile, but is an example of what I would like to do.
  Would it be possible to create a constant object like this and use it as the default for an optional parameter??</p>