如何检查变量是否为const?

TIA*_*ZHU 2 c#

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

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

Eri*_*ert 14

如何检查变量是否为const?

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

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

更新:该问题已得到澄清。问题确实是

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

您可以使用反射来告知,就像这样:

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

请注意,因为规则有些棘手。请记住,有三件事:普通变量,只读变量和常量。变量是可以更改的存储位置。常数是不能的值。但是只读变量是只能在构造函数或初始化程序中更改的变量,因此有时被分类为变量,有时被分类为值,但从未被分类为常量。

再说一遍,如果您说出这样做的原因,那将是很棒的,因为对于您的实际问题可能会有更好的解决方案。

  • @giusti:在C#中,初始化后无法更改的变量称为“只读”字段,在初始值设定项和构造函数中将其分类为*变量*,在其他上下文中将其分类为* value *。但是在任何情况下都不会将其归类为“常量”。C#仔细定义了单词“变量”和“常量”。如果您谈论的是C#,则最佳实践是使用C#中定义的单词;我们编写这些定义是为了帮助您清晰而易懂地说话。 (2认同)