2016-05-03 115 views
0

你好,我正在做一個學校作業。我的程序中的所有東西都能正常工作,但老師希望我在我的一個構造函數中添加一個DateTime類型的參數。我有點困惑,因爲我認爲我已經有這種類型的參數:構造函數應該指定參數

using System; 
using System.Windows.Forms; 

namespace Assignment4 
{ 
    class Task 
    { 
     private string time = string.Empty; 
     private string date = string.Empty; 
     private DateTime dateTime = new DateTime(); 
     private string description = string.Empty; 
     private object priorityType; 
     private string priority; 

     public string Description 
     { 
      get 
      { 
       return description; 
      } 
      set 
      { 
       description = value; 
      } 
     } 


     public DateTime DateTime 
     { 
      set 
      { 
       dateTime = value; 
       time = dateTime.TimeOfDay.ToString(); 
       date = dateTime.Date.ToString("d"); 
      } 
     } 

     public string Time 
     { 
      get 
      { 
       return time; 
      } 
     } 

     public string Date 
     { 
      get 
      { 
       return date; 
      } 
     } 


     public object PriorityType 
     { 
      set 
      { 
       priorityType = value; 
       priority = priorityType.ToString(); 
      } 
     } 

     public string Priority 
     { 
      get 
      { 
       return priority; 
      } 
     } 
    } 
} 

爲datetime =值不是DateTime類型的參數?

+1

什麼階級是這樣的。請顯示課程的聲明。這不是一個構造函數,而是一個屬性 – Steve

+0

@Steve我想問題是''new DateTime();'... –

回答

2

constructor of a C#類是一種沒有返回類型和類名相同的方法。每次創建類的實例時都會調用構造函數(new YourClass)。

你可以有許多具有不同類型參數的構造函數傳遞給這些方法,即使沒有參數(它是默認的構造函數)。
正確的構造是在創建類,您傳遞的參數標識....

public class Person 
{ 
    private string _name; 
    private DateTime _dob; 
    public Person(string name, DateTime dateOfBirth) 
    { 
     _name = name; 
     _dob = dateOfBirth; 
    } 
} 


..... somewhere in your code ..... 
Person myself = new Person("Steve", new DateTime(1970,1,1)); 
1

既然DateTime是一個不可變的結構體,你只能從構造函數中設置它的值。這意味着你需要做這樣的事情:

dateTime = new DateTime(2016, 05, 03); 

在你的情況,你可以利用這一點,因爲你把它在其他地方:

private DateTime dateTime; 

(另外,你的財產需要get太,你現在只有一個set

+0

這是一個很好的猜測,沒有看到他的類聲明! – DGibbs

+0

這可能是整個類聲明@DGibbs –

+0

我現在發佈了整個腳本。 – Taegos