我愿意检查变量是否为常量。我该怎么做?我用 Google 搜索了很多,但找不到答案。
我有一行代码:public const string xxx,在一个类中,我想在另一个类中检查xxx是否为const。
最佳答案
How to check a variable is const or not?
没有变量是常量。 “变量”和“常量”是相反的:变量是可以改变的存储位置。常数是不能的值。
你能说说你问这个问题的原因吗?您可能走错了路;说出您真正的问题是什么,您将更有可能获得解决方案。
更新:问题已得到澄清。问题真的是
How can I tell if a member of a class or struct is a variable or a constant?
您可以使用反射来说明这一点,如下所示:
- 通过您喜欢的任何技术获取类或结构的
类型
。 - 如果不知道名称,请使用
GetFields
获取类型成员的FieldInfo
,如果知道,请使用GetField
。 - 常量的
FieldInfo
会将IsLiteral
设置为 true 并将IsInitOnly
设置为 false。
要小心,因为规则有点棘手。请记住,存在三种东西:普通变量、只读变量和常量。变量是可以改变的存储位置。常量是不能的值。但只读变量是只能在构造函数或初始化程序中更改的变量,因此有时被归类为变量,有时被归类为值,但从未被归类为常量。
同样,如果您说出您这样做的原因,那就太好了,因为可能有更好的解决方案来解决您的实际问题。
关于c# - 如何检查变量是否为常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57900259/