Let’s say, we have a variable, which we want named Fubar
Let’s say that Fubar is a String!
That means, we would define Fubar as so:
public string Fubar;
Now, let’s say we want Fubar to have a getter and setter (or in other words, become a C# property)!
private string Fubar;
public string Fubar_gs
{
get
{
//Some fancy logic
return Fubar;
}
set
{
//Some more fancy logic
Fubar = value;
}
}
Well great! That is all fine and dandy, EXCEPT, what if I wanted the PROPERTY to be named Fubar, not the original variable?
Well obviously, I would just rename both variables. But the problem is, what would be the best name for the original variable?
Is there a naming convention for this situation?
Per Microsoft’s naming conventions, the proper way would be:
However, many people prefer to prefix the private field with an underscore to help minimize the possibility of miscapitalizing and using the field when they meant to use the property, or vice versa.
Thus, it’s common to see:
The approach you take is ultimately up to you. StyleCop will enforce the former by default, whereas ReSharper will enforce the latter.
In C# 6, there is new syntax for declaring default values for properties or making read-only properties, lessening the need for properties with backing fields that don’t have any special additional logic in the
getandsetmethods. You can simply write:public string Fubar { get; set; } = "Default Value";or
public string Fubar { get; } = "Read-only Value";