2016-05-03 33 views
0

こんにちは私は学校の割り当てをしています。私のプログラムのすべてがうまくいきますが、教師は自分のコンストラクタの1つに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を必要とします

+0

これはクラス宣言を見ることなく、かなり良い推測です! – DGibbs

+0

これは、クラス全体の宣言@DGibbs –

+0

であるかもしれません。 – Taegos

関連する問題