gpt4 book ai didi

c# - 如何声明只能在运行时初始化的const

转载 作者:太空狗 更新时间:2023-10-30 01:07:56 26 4
gpt4 key购买 nike

我的类包含无法更改的 LOT_SIZE 常量。但我只能在执行期间对其进行初始化,因为我在运行时从 Securities 表中获取了 LOT_SIZE。但是我想明确指出这是常量,我想保护它免受任何其他地方的更改,除了我想初始化它的一个“ friend ”地方(“证券”表读取)。

我们在 C# 中是否有相应的东西,或者我只需要使用 LOT_SIZE 作为常规变量?

我不能将 LOT_SIZE 声明为 readonly,因为在对象构造期间“证券”表仍未读取,所以我不知道 LOT_SIZE值(value)。

最佳答案

最好的方法可能是在创建必须持有它的类之前读取该值,这样您就可以将它传递给构造函数并将其放入 readonly 字段中。但是由于您已经排除了以明显的方式进行操作...

您可以使用只读属性(具有 get 但没有 set 的属性)并始终通过该属性访问它,除了在您最初设置值的地方。

如果您甚至不想冒险在您自己的类中更改它,那么创建一个类来“包装”该值。此类只会在第一次需要时读取值并将其作为只读属性公开给您的消费者类。

但是无论您选择哪种方式,请不要使用“1970 年代的 C 宏常量”(ALL_CAPS) 命名您的常量:-)

关于c# - 如何声明只能在运行时初始化的const,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054619/

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