您好我正在完成学校作业。我的程序中的所有内容都运行正常,但是老师要我在我的一个构造函数中添加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 = value不是DateTime类型的参数吗?
答案 0 :(得分: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 :(得分:1)
由于DateTime
是一个不可变的结构,因此只能从构造函数中设置它的值。这意味着你需要做这样的事情:
dateTime = new DateTime(2016, 05, 03);
在你的情况下,你可以使用它,因为你把它设置在其他地方:
private DateTime dateTime;
(此外,您的酒店也需要get
,您现在只需set