title: Naming conventions for Constructor Arguments?
body: <p>I always have an issue with similarities between the names of the Public variables in a class and the arguments I am passing into the same classes constructor.</p>
  <p>When you are defining a new instance of an object, for example, Car. The only thing that the user/programmer can see is the names and type of the arguments that is it looking for.</p>
  <p>For Example:</p>
  <pre><code>public Car(Color BodyColor, int NumOfDoors, int SizeOfWheels)
  {
  }
  </code></pre>
  <p>The user would see these names and types, and would only be able to know what they are based on their type and name, exluding any xml summary tags.</p>
  <p>Now, we always want our public variables to be very specific as well.</p>
  <p>For Example:</p>
  <pre><code>public Color BodyColor { get; set; }
  public int NumOfDoors { get; set; }
  public int SizeOfWheels { get; set; }
  </code></pre>
  <p>Now, we can get to my question. Using these one-line properties, instead of defining a private instance of the variable and creating the property for that, how does one make these variable names more clear?</p>
  <p>I am trying to use naming conventions that other users will find understandable and easy to read.</p>
  <p>Right now the constructor looks like</p>
  <pre><code>public Car(Color BodyColor, int NumOfDoors, int SizeOfWheels)
  {
       this.BodyColor = BodyColor;
       this.NumOfDoors = NumOfDoors;
       this.SizeOfWheels = SizeOfWheels;
  }
  </code></pre>
  <p>Is this what other C# programmers would write? Is there a naming convention that already exists for this? At first glance, the above statement looks a tad messy, especially if you omit the <code>this.</code></p>