2016-02-18 60 views
-2

我是C#的新手,前幾天我遇到了一些問題,你們可能會幫助我。我在附加的代碼中出現錯誤。當你回答時,請讓它理解。我的大學課程被命名爲「基礎面向對象編程」。我的代碼中有這個錯誤:網球運動員課

namespace Tennis_Player 
{ 
    class Player 
    { 
     private string first_name; 
     private string last_name; 
     private DateTime dob; 
     private string nat; 
     private char gender; 
     public Player(string first_name, string last_name, DateTime dob, string nat, char gender) 
     { 
      this.first_name = first_name; 
      this.last_name = last_name; 
      this.dob = dob; 
      this.nat = nat; 
      this.gender = gender; 
     } 
     public override string ToString() { return first_name + " " + last_name + " " +dob; } 
     static void Main(string[] args) 
     { 
      var Niels = new Player("Niels", "Olsen", 1985 - 12 - 25, "Denmark", 'M'); 
      Console.WriteLine("Den nye spiller er " + Niels); 
     } 
    } 
} 
+8

你忘了告訴我們什麼是錯誤訊息? – Steve

+1

對不起:我想你應該在問之前多加點努力去問問其他人來幫助你 – BlueTrin

+1

歡迎使用編程和StackOverflow! :)我不想回答這個人的第一次編程經驗,但請閱讀http://stackoverflow.com/help/how-to-ask和http://stackoverflow.com/help/dont-ask –

回答

8

不以這種方式傳遞日期時間值。從編譯器的角度來看,您正在編寫一個數學表達式1985-12-25(等於1948),並試圖將該數字傳遞給期望該參數的DateTime的方法。

你需要聲明一個DateTime變量,並與您的相關信息初始化

static void Main(string[] args) 
{ 
    DateTime dob = new DateTime(1985,12,25); 
    var Niels = new Player("Niels", "Olsen", dob, "Denmark", 'M'); 
    Console.WriteLine("Den nye spiller er " + Niels); 
} 

,當然你也可以用你的電話創建日期時間在線

static void Main(string[] args) 
{ 
    var Niels = new Player("Niels", "Olsen", 
          new DateTime(1985,12,25), 
          "Denmark", 'M'); 
    Console.WriteLine("Den nye spiller er " + Niels); 
} 

DateTime structure MSDN上

1

您在新的Player(...)構造函數中傳遞的DateTime格式無效。試試這個代碼:

static void Main(string[] args) 
{ 
    var dob = new DateTime(1985,12,25); 
    var Niels = new Player("Niels", "Olsen", dob, "Denmark", 'M'); 
    Console.WriteLine("Den nye spiller er " + Niels); 
} 
0

在你的代碼中,你沒有將DateTime傳遞到正確的格式。請按照下面的代碼。

class Player 
    { 
     private string first_name; 
     private string last_name; 
     private DateTime dob; 
     private string nat; 
     private char gender; 
     public Player(string first_name, string last_name, DateTime dob, string nat, char gender) 
     { 
      this.first_name = first_name; 
      this.last_name = last_name; 
      this.dob = dob; 
      this.nat = nat; 
      this.gender = gender; 
     } 
     public override string ToString() { return first_name + " " + last_name + " " + dob; } 
    } 

    class Program 
    { 


     static void Main(string[] args) 
     { 

      var Niels = new Player("Niels", "Olsen", new DateTime(1985,04,11), "Denmark", 'M'); 
      Console.WriteLine("Den nye spiller er " + Niels); 
     } 
    } 
+0

爲什麼我的回答沒有用?爲什麼會給負面點呢? –

+0

解釋你在代碼中改變了什麼,爲什麼會使這個更好的答案。 – crashmstr

+0

好的,我明白了。 我認爲我不需要解釋這個小問題。 –

1

出生日期傳遞如下

DateTime dateofbirth = new DateTime(1985,12,25); 
var player= new Player("Niels", "Olsen", dateofbirth , "Denmark", 'M'); 
Console.WriteLine("Den nye spiller er " + player); 
Console.ReadLine(); 
+0

您創建一個名爲dateofbirth的'DateTime',但是然後傳入'dob'。 – juharr