c# - 如何检查变量是否为常量?

标签 c#

我愿意检查变量是否为常量。我该怎么做?我用 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/

相关文章:

c# - 过滤多种文件类型

c# - 如何用下一个字符替换字符串值中的每个字符?

c# - 项目中不存在目标 "PreComputeCompileTypeScript"

c# - 在特定位置写入数据

c# - 查看模型到领域模型,在哪里测试映射?

c# - azure - 操作日志 api

c# - 使用 WebClient.UploadFile 时无响应

javascript - JavaScript 和 C# 中的 12 小时时间格式比较

c# - 在 For 循环内使用 IF 条件检查时如何丢弃数据表中的空值

c# - 将 IEnumerable<T> 转换为对象 [,] C#