首页 > 解决方案 > 如何检查变量是否为 const?

问题描述

我愿意检查变量是否为 const。我该怎么做?我用谷歌搜索了很多,找不到答案。

我有一行代码:public const string xxx,在一个类中,我想检查 xxx 在另一个类中是否为 const。

标签: c#

解决方案


如何检查变量是否为 const?

没有变量是常量。“变量”和“常量”是对立的:变量是可以改变的存储位置。常数是不能的值。

你能说你为什么问这个问题吗?您可能会走错路;说出您真正的问题是什么,您将有更好的机会获得解决方案。

更新:问题已得到澄清。问题真的是

如何判断类或结构的成员是变量还是常量?

您可以使用反射来说明这一点,如下所示:

  • 通过您喜欢的任何技术获取Type类或结构的。
  • 如果您不知道名称,或者如果您知道,请使用获取FieldInfo类型成员的。GetFieldsGetField
  • 一个FieldInfo常量将IsLiteral设置为 true 并IsInitOnly设置为 false。

要小心,因为规则有点棘手。请记住,这里有三样东西:普通变量、只读变量和常量。变量是可以改变的存储位置。常量是不能的值。但是只读变量是只能在构造函数或初始化器中改变的变量,因此有时被归类为变量,有时被归类为值,但从不归类为常量。

同样,如果你能说出你为什么这样做,那就太好了,因为可能有更好的解决方案来解决你的实际问题。


推荐阅读