2017-06-20 71 views
-2

所以,我有這個程序,它有一個輸入爲DateTime的構造函數。C# - DateTime構造函數調用

但是,每當我嘗試創建該類的對象,並將DateTime作爲參數傳遞時,就會出現錯誤。

的代碼如下:

public Student(DateTime dob) 
     { 
      DateofBirth = dob; 
     } 
    } 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var myprogram = new Student(1995,04,29); 

但是,它的顯示,說明構造函數不能採取三個參數在學生類的錯誤。請幫忙!

PS:有代碼在上面和下面,所以忽略括號。

+0

您的學生構造函數只接受1個'DateTime'類型的參數,您可能想要在'Program'類中輸入格式以創建DateTime對象並在構造函數中使用它 –

+0

錯誤是正確的, 'DateTime dob'!='1995,04,29'你可能會缺少'DateTime'變量聲明作爲構造函數參數(Henningsson的答案),或者可能是另一個具有年,月和日參數的構造函數(Jon Skeet的答案) 。 – bradbury9

回答

8

嗯,是的 - 你想傳遞三個整數參數構造函數,但它接受一個DateTime值。您目前沒有創建DateTime值。所有你需要做的是改變你的構造函數調用:

var myprogram = new Student(new DateTime(1995, 4, 29)); 

這將隱含發生 - 你需要告訴編譯器,你真的沒意味着創建DateTime

作爲替代你可以一個Student構造函數來創建DateTime和鏈添加到其他的構造函數:

public Student(int year, int month, int day) 
    : this(new DateTime(year, month, day)) 

但是這似乎並不像一個好主意,我Student類。

2

你的類將DateTime作爲參數,而不是三個整數。試試這個:

var myprogram = new Student(new DateTime(1995,04,29));