运维开发网

c# – 为什么Date结构是不可变的?

运维开发网 https://www.qedev.com 2020-05-20 13:45 出处:网络 作者:运维开发网整理
我想知道为什么日期结构&对象,比如C#的DateTime& Obj-C的NSDate已经变得一成不变. 我正在寻找这种设计背后的原因以及使这些信息不可改变的好处,而不仅仅是“因为它们可以” 更新: 似乎有一个类似的问题,我的答案很棒,但专门针对Java,可以在这里找到:Why do we need immutable class? 这与我的问题的答案相结合,提供了非常丰富的信息 不变性使很多事情变
我想知道为什么日期结构&对象,比如C#的DateTime& Obj-C的NSDate已经变得一成不变.

我正在寻找这种设计背后的原因以及使这些信息不可改变的好处,而不仅仅是“因为它们可以”

更新:

似乎有一个类似的问题,我的答案很棒,但专门针对Java,可以在这里找到:Why do we need immutable class?

这与我的问题的答案相结合,提供了非常丰富的信息

不变性使很多事情变得更容易.如果您不必担心某些事情可能会在您下面发生变化,那么您就不必编写许多保护代码.你不必做很多假设.事情有很多可能性,不会出错.

字符串,日期和其他类型的公共对象在现代语言中不可变是很常见的,因为它简化了编译器,框架,并且意味着编译器在进行优化时可以自由地做出假设.

要点是,只需很小的代价(如果你想改变价值就必须创建一个新的对象),你会获得很多真正的性能,稳定性和可靠性.

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号