转换DateTime输入时出现问题

时间:2017-03-10 12:00:10

标签: c# datetime

我是OOP的新手,正在编写一个网球锦标赛计划,其中玩家拥有以下数据(我使Person类成为超类,因为我后来需要将一个裁判类与一些相同的实例变量连接起来)。当我尝试在我的SVM方法中创建一个新的播放器时,我无法创建,因为我的生日输入错误。当我尝试输入1981/09/26时,它说:“参数4:无法从'int'转换为System.DateTime'。

我该怎么做才能解决这个问题?其他输入如string和GenderType工作正常?

public class Person
{
    public enum GenderType     { Male, Female}
    private string FName       { get; set; }
    private string MName       { get; set; }
    private string LName       { get; set; }
    private DateTime Birthdate { get; set; }
    private string Nationality { get; set; }
    private GenderType Gender  { get; set; }

    public Person(string fn, string mn, string ln, DateTime bd, string nation, GenderType g)
    {
        FName = fn;
        MName = mn;
        LName = ln;
        Birthdate = bd;
        Nationality = nation;
        Gender = g;
    }

    public override string ToString(){ return "Firstname: " + FName + " Middlename: " + MName + " Lastname: " + LName + " Birthdate: " + Birthdate + " Nationality " + Nationality + " Gender: " + Gender;}}

public class Player : Person {

public Player(string fn, string mn, string ln, DateTime bd, string nation, GenderType g) : base(fn, mn, ln, bd, nation, g)
    {

    }

    static void Main(string[] args)
    {
        var p1 = new Player("Serena", "J.", "Williams", 1981 / 09 / 26, "USA", GenderType.Female);
    }


}

3 个答案:

答案 0 :(得分:7)

因为您没有传递DateTime类型的实例,而是直接传递文字,而编译器正在考虑类型为int,但从代码中可以清楚地看到Birthdate属性在您的DateTime类中。

您需要创建一个DateTime类型对象:

new Player("Serena", "J.", "Williams",new DateTime(1981,09,26),"USA", GenderType.Female);

DateTime构造函数中第一个参数是年份,第二个参数是月份,第三个参数是月份中的日期。

以下是constructor正在使用它。

答案 1 :(得分:0)

var p1 = new Player(“Serena”,“J。”,“Williams”,new Datetime(1981,09,26),“USA”,GenderType.Female);

答案 2 :(得分:0)

您可以像这样设置日期时间:

static void Main(string[] args)
{
    var p1 = new Player("Serena", "J.", "Williams", new DateTime (1981, 09, 26, 0, 0, 0), "USA", GenderType.Female);
}