是C#中的datetime结构或类吗?

Ozg*_*gan 8 c# datetime

我刚刚开始使用c#.但无法弄清楚DateTime.我知道它是一个结构,但为什么我会看到不同的方法像类一样初始化它.

如果它是一个结构,这怎么样?

DateTime myValue = DateTime.Now;  // This is struct

DateTime myValue2 = new DateTime(); // This is class with +11 overloads. 
Run Code Online (Sandbox Code Playgroud)

那么c#one中有两个版本的datetime是struct而另一个是class吗?

Ser*_*rvy 9

使用关键字new并不意味着它正在创建类的实例.它正在创建一个struct的实例.结构也可以有构造函数,并且使用与类相同的语法对它们进行初始化(在C#中),尽管它们是结构体.


das*_*ght 9

类型不能同时是a struct和by-reference类型.两个构造都构成一个DateTime,这是一个值类型(也称为struct).

两者之间的区别在于,第一个产生要在被调用的静态属性中复制的值Now,第二个通过DateTime11个构造函数之一初始化值.