2017-06-20 90 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));