gpt4 book ai didi

c# - C# 中的 private const 和 private readonly 变量之间有区别吗?

转载 作者:IT王子 更新时间:2023-10-29 04:10:45 29 4
gpt4 key购买 nike

在 C# 中使用 private const 变量或 private static readonly 变量有区别吗(除了必须分配 const一个编译时表达式)?

因为它们都是私有(private)的,所以没有与其他库的链接。那会有什么不同吗?例如,它可以产生性能差异吗?实习字符串?有没有类似的?

最佳答案

好吧,您可以在属性中使用常量,因为它们作为编译时存在。您无法预测静态只读变量的值,因为 .cctor 可以从配置等初始化它。

在使用方面,常量被嵌入到调用代码中。这意味着,如果您重新编译一个 dll 来更改一个public 常量,但不更改消费者,那么消费者仍将使用原始值。使用只读变量,这不会发生。反过来说,常量(非常非常小)更快,因为它只是加载值(而不是必须取消引用它)。

重新实习;尽管您可以手动执行此操作,但这通常是文字的编译器/运行时功能;如果您通过文字初始化一个只读字段:

someField = "abc";

然后 "abc" 将被实习。如果你从配置中读取它,它不会。因为常量字符串必须是文字,所以它也会被驻留,但访问方式不同:同样,从字段中读取是取消引用,而不是 ldstr。 .

关于c# - C# 中的 private const 和 private readonly 变量之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/410723/

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