我一直在查看DateTime结构,我有点困惑.
我对结构的理解是你不能分配字段的"默认值".如果使用了结构的默认构造函数(这不是您可以控制的东西),那么将使用其值类型的默认值初始化任何字段.
这一切都很好,但为什么DateTime的'Days'属性的默认值等于1?他们如何解决这个问题?
威廉
您需要了解字段和属性之间的区别.
这些字段都初始化为0,但属性可以使用这些字段执行他们喜欢的操作.样品:
public struct Foo
{
private readonly int value;
public Foo(int value)
{
this.value = value;
}
public int ValuePlusOne { get { return value + 1; } }
}
...
Foo foo = new Foo(); // Look ma, no value! (Defaults to 0)
int x = foo.ValuePlusOne; // x is now 1
Run Code Online (Sandbox Code Playgroud)
现在显然DateTime是一个比这更复杂的微笑,但它提供了正确的想法:)想象一下"A DateTime与字段显式设置为0"意味着......"默认" DateTime只是意味着完全相同的事情.
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |