En la línea
colour = theColour;
el compilador no puede decir lo que quiere decir. Podría ser cualquiera
private string colour;
o podría ser
public string colour { get; set }
para eliminar la ambigüedad de elegir una convención de nomenclatura diferente ayuda. Por ejemplo, puede elegir que las propiedades tengan una primera letra mayúscula y los campos comiencen con un guión bajo y una letra minúscula. En ese caso, su clase tendría el siguiente aspecto:
class Dog
{
private int _weight;
private string _colour;
public string Colour { get; set; }
public Dog(int theWeight, string theColour)
{
_weight = theWeight;
_colour = theColour;
}
}
Sin embargo, tenga en cuenta que probablemente tenga una duplicación aquí. Lo más probable es que no era su intención tener tanto el Color de la propiedad automática como el color del campo en primer lugar.
También puede elegir una herramienta que lo ayude a seguir las pautas recomendadas. Como ejemplo, echa un vistazo a FxCop. No está bien o mal, pero ciertamente es más fácil trabajar con reglas que son generalmente aceptadas. (Es cierto que mi sugerencia de utilizar guiones bajos para los campos no está en línea con lo que generalmente se acepta. Sin embargo, no uso campos públicos)
¿Qué sucede cuando usa una 'C' en mayúscula para la propiedad Color? –