gpt4 book ai didi

c# - 有约束的结构

转载 作者:行者123 更新时间:2023-12-03 22:20:59 26 4
gpt4 key购买 nike

我很难弄清楚如何在 C# 中编写对其字段值有限制的结构。例如,System.DateTime

DateTime d = new DateTime();

将值 01/01/0001 12:00:00 AM 放入 d 中。但我无法编写显式无参数构造函数,因为不允许 struct 具有显式无参数构造函数。那么,如何创建一个在我想要的约束内默认构造的结构

我唯一能想到的就是设计属性,使其返回我想要的约束内的值。例如,如果我存储一个想要大于 0 的 int,我只需在返回值中添加 1 并禁止设置小于 1。这是明智的做法吗?

最佳答案

查看this的答案询问更多信息。基本上,在没有参数的情况下,值类型字段始终会初始化为默认值作为性能优化,因为值类型通常在数组等中以更大的数量使用。

如果您想要真正的约束,您应该考虑创建一个类,但如果在使用您的类时出现性能问题,“智能属性”可能是可行的方法。至于 DateTime 类型,是的,它具有“智能”属性,将日期存储为数字,并根据请求转换为特定格式(通过属性访问)。 01/01/0001 12:00:00 AM 实际上是设计时默认内部 0 的表示。

关于c# - 有约束的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1214762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com