Im getting the following error:
Cannot use local variable \'dob\' before it is declared
Here is my implementation
pu
You've declared a local variable in getFormattedDoB called dob. The compiler can't tell the difference between that and the member dob. Try adding "this" where you mean the member variable rather than the local:
DateTime origin = DateTime.Parse(this.dob);
Better still, don't use the same name for the local variable.
Edit: Unless you did actually intended to set the member variable and not create a new one. In which case remove the "string" as Andrew suggested.
You are redeclaring dob in
string dob = origin.ToString("d");
it should be
dob = origin.ToString("d");
You have reused the variable name "dob" in getFormattedDoB
as a local string, which is confusing the compiler. There are 2 possible solutions:
Use this.dob in the following line to specify the class level variable (which you should probably also do because it's also good practice:
DateTime origin = DateTime.Parse(this.dob);
The problem is that you have two dob
s- the property and the local variable. The scope of a variable declaration (string dob = ...
) is the whole block (everything between the {
and }
). Therefore the compiler thinks that on the line:
DateTime origin = DateTime.Parse(dob);
you are using the dob
variable before it is declared, when (we assume) you really meant the dob
property.
As others have mentioned, you should rename the property. The standard naming convention in C# would be
public String DateOfBirth { get; set; }
//(assuming that is what DOB stands for)
or better yet
public DateTime DateOfBirth { get; set; }