网友问题:
C# 中的常量
和只读
有什么区别?
你什么时候会使用一个而不是另一个?
网友回答:
有一个陷阱与康特!如果从另一个程序集引用一个常量,则其值将直接编译到调用程序集中。这样,当您更新引用程序集中的常量时,它不会在调用程序集中更改!
网友回答:
网友回答:
除了明显的差异
const
readonly
const
的隐式 .您可以使用表示法来访问它们。static
ClassName.ConstantName
有一个微妙的区别。考虑在 中定义的类。AssemblyA
public class Const_V_Readonly
{
public const int I_CONST_VALUE = 2;
public readonly int I_RO_VALUE;
public Const_V_Readonly()
{
I_RO_VALUE = 3;
}
}
AssemblyB
在代码中引用和使用这些值。编译时:AssemblyA
AssemblyB
在我重新编译它之前仍然会有 2。const
AssemblyB
I_CONST_VALUE
readonly
ref
AssemblyB
AssemblyB
I_RO_VALUE
AssemblyA
因此,如果您确信常量的值不会更改,请使用 .const
public const int CM_IN_A_METER = 100;
但是,如果您有一个可能会更改的常量(例如 w.r.t. 精度)或有疑问,请使用 .readonly
public readonly float PI = 3.14;
更新:阿库需要提及,因为他首先指出了这一点。我还需要插入我学到这个的地方:有效的 C# – 比尔瓦格纳
模板简介:该模板名称为【C# 中的常量和只读有什么区别?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。