C# 如何以3种方式显示日期?

C# 如何以3种方式显示日期?,c#,C#,我尝试使用int显示日期以3种方式显示我的日期,但每次我调用日期时,输出的日期都是0。 我试着把它们三个分开显示。我试图通过参数调用它们,并将参数设置为3,但仅显示0 using System; public class Date { private int month; private int date; private int year; private int parameter; private int p; private int Di

我尝试使用int显示日期以3种方式显示我的日期,但每次我调用日期时,输出的日期都是0。 我试着把它们三个分开显示。我试图通过参数调用它们,并将参数设置为3,但仅显示0

using System;

public class Date
{
    private int month;
    private int date;
    private int year;
    private int parameter;
    private int p;
    private int DisplayDate;

    public Date(int p)
    {
        this.p = p;
    }

    public int getmonth()
    {
        return month;
    }
    public void setmonth(int m)
    {
        month = m;
    }
    public void setmonth(string m)
    {
        month = int.Parse(m);
    }
    public int getdate()
    {
        return date;
    }
    public void setdate(int d)
    {
        date = d;
    }
    public int getyear()
    {
        return year;
    }
    public void setyear(int y)
    {
        year = y;
    }
    public int getparameter()
    {
        return parameter;
    }
    public void setparameter(int p)
    {
        parameter = p;
        if (p <= 3)
        {
            if (p == 1)
            {
                setmonth("1");
                setdate(22);
                setyear(2015);
            }
            else if (p == 2)
            {
                setyear(2015);
                setmonth("2");
                setdate(20);
            }
            else if (p == 3)
            {
                setmonth("March");
                setdate(10);
                setyear(2015);
            }
        }

    }

}

class DateTest
{
    static void Main(string[] args)
    {
        Date D = new Date (3);
        Console.WriteLine("The Date is {0}", D.getparameter());
        Console.WriteLine("Press any key to close");
        Console.ReadKey();
    }
}

但您不在代码中设置参数:

public Date(int p)
{
    this.p = p;//you set p, not parameter in your constructor
}

如果要设置setParameter方法,应该调用它。

您从未调用过setParameter方法,这就是getparameter返回0的原因。 尝试在构造函数中以p作为参数调用它

    public Date(int p)
{
    this.p = p;
    this.setparameter(p);
}

类似于此。

如果不调用setparameter,则getparameter返回0,这是int参数字段的默认值。此外,请记住,原始System.DateTime是一种结构值类型,而不是类引用类型。除此之外,现在是学习.NET命名约定的非常好的时机;b了解属性,这是一种比get/set方法更惯用的方法;c告诉我们您希望看到什么,因为您只打印了一次调用D.getparameter的结果。@haim770:我不确定这是否相关,因为这里没有提到DateTime。@haim770:可能,但我认为首先需要担心更大的问题。希望OP只是学习C,而不是真正创建自己的日期/时间API。毕竟,谁会这么做;如果我将参数设置为3,那么在我运行代码之后,我将如何获得输出以显示其他2?类的实际用途是什么?如果设置参数3,则如果不更改代码,则无法输出其他参数。。。或者您可以简单地创建一个新实例,在其中设置其他日期此类的目的是以3种不同格式同时显示3个日期。我显示了1,但如果不返回并更改参数,则无法显示其他2。mhh,您是对的,因此这不是最好的设计,但我认为您需要显示3个日期,为什么不更改实现设计?您不应该调用get参数并等待它返回3个日期,由于它的功能性和OOP=高内聚性和单一责任的基本原则,更好的方法是创建3个实例,每个实例都有一个日期,这是吗?