在 C# 中设置 get 的 DateTime 数组

DateTime Array with get set in c#

我有以下代码。谁能告诉我根据 C# 规则这是否正确。

public DateTime[] datetime = new DateTime[];

我无法使用get;设置如上。

随后,我想将日期保存到日期时间。

怎么做?

您不能同时声明和初始化一个 属性,这与字段不同。而是在 class' 构造函数中初始化它:

public DateTime[] datetime { get; set; }

public MyClass()
{
  datetime = new DateTime[];
}

如果您的数组不是固定大小并且您将向其中添加未知数量的日期,请考虑改用列表:

public List<DateTime> datetime { get; set; }

public MyClass()
{
  datetime = new List<DateTime>();

  // Add a DateTime:
  var newDateTime = DateTime.Now;
  datetime.Add(newDateTime);
}

Would anyone tell me if this is correct according to C# rules.

我不确定你所说的规则是什么意思。但是,根据 C# 规范,您必须在声明数组时指定数组的大小:

public DateTime[] datetime = new DateTime[5];   

I am unable to use get; set with the above.

因为这不是声明 属性 的正确语法。你这样做:

public DateTime[] DateTimes { get; set; }

然后您通过构造函数对其进行初始化:

class Foo
{
    public Foo()
    {
        DateTimes = new DateTime[5];
    }

    public DateTime[] DateTimes { get; set; }
}

现在将为您提供一个包含 5 个元素的数组

请注意,如果您事先知道日期的数量,也可以使用数组初始化语法:

class Foo
{
    public Foo()
    {
        DateTimes = { new DateTime(1, 1, 1970), new DateTime(2, 1, 1980) };
    }

    public DateTime[] DateTimes { get; set; }
}

如果事先不知道数组大小,您或许应该考虑使用可以在运行时扩展的 List<DateTime>