我的任務指定我必須創建6個類,現在在這些類中的一個調用(播放器),其中包含通常的名稱,性別等!必須有一種方法可以在幾年內返回玩家的年齡。現在我寫了下面的代碼,但是我覺得它可能不需要太長時間,所以我正在尋找任何有用的建議。C#類和返回值
class Player
{
private string firstName;
private string lastName;
private List<string> middleNames;
private DateTime birthday;
private string nationality;
private string gender;
public Player(string firstName, string lastName, List<string> middleNames, DateTime birthday, string nationality, string gender)
{
this.firstName = firstName;
this.lastName = lastName;
this.middleNames = middleNames;
this.birthday = birthday;
this.nationality = nationality;
this.gender = gender;
}
public string FirstName
{
get
{
return firstName;
}
set
{
firstName = value;
}
}
public string LastName
{
get
{
return lastName;
}
set
{
lastName = value;
}
}
public List<string> MiddleNames
{
get
{
return middleNames;
}
set
{
middleNames = value;
}
}
public DateTime BirthDay
{
get
{
return birthday;
}
set
{
birthday = value;
}
}
public string Nationality
{
get
{
return nationality;
}
set
{
nationality = value;
}
}
public string Gender
{
get
{
return gender;
}
set
{
gender = value;
}
}
public int GetAge(DateTime currentDate)
{
int age = currentDate.Year - birthday.Year;
if (currentDate.Month - birthday.Month < 0 || (currentDate.Month - birthday.Month == 0 && currentDate.Day - birthday.Day < 0))
{
--age;
}
return age;
}
}
首先要了解的是:自動實現的屬性。你有71行代碼,可以用6表示。接下來,我建議使用我的[Noda Time項目](http://nodatime.org),這使得執行基於日期的計算變得更容易。現在,這與你的問題標題有什麼關係?這真的只是*關於「我如何計算一個時代」? –
如果是這樣,這是一個https://stackoverflow.com/questions/9重複 - 網站上最古老的問題之一... –
@JonSkeet他們說這是一個任務,推動一個庫isn沒有幫助。 這就是說,這更多的是一個樣式問題,而不是一個實際的編程問題,可能不屬於 –