title: Is it bad practice to have a constructor with entirely optional parameters?
body: <p>While designing a class structure for a C# project, I thought about an interesting question that I was hoping to get some insight on before finalizing my design. Here's a template design of the concept I'm talking about:</p>
  
  <pre><code>class TemplateClass
  {
      public TemplateClass(int input1 = 0, string input2 = "")
      {
          field1 = input1;
          field2 = input2;
      }
      public TemplateClass()
      {
          field1 = 0;
          field2 = "";
      }
      public int field1;
      public string field2;
  }
  </code></pre>
  
  <p>It seems like an incredibly convenient design for the purpose of what I'm doing, but I'm curious if this is considered bad practice for any reason.</p>