c# – WinRT组件库中的公共常量
发布时间:2020-12-15 08:05:43 所属栏目:百科 来源:网络整理
导读:我创建了一个C# Windows运行时组件,并且以下行: public const bool LOG_ENABLED = false; 抛出错误: 类型’常量’包含外部可见的常量字段’Constants.LOG_ENABLED’.常量只能出现在Windows运行时枚举中 这个错误是什么意思?我怎样才能声明常量? 解决方法
我创建了一个C#
Windows运行时组件,并且以下行:
public const bool LOG_ENABLED = false; 抛出错误: 类型’常量’包含外部可见的常量字段’Constants.LOG_ENABLED’.常量只能出现在Windows运行时枚举中 这个错误是什么意思?我怎样才能声明常量? 解决方法
这是一个古老的问题,但我会给予我的两分钱. const和public是一个危险的组合,经常错过使用.这是因为如果在库中更改了公共const字段,则不能仅替换库,而是需要重建该库的所有客户端,因为它将复制客户端中的实际值而不是参考到那个价值.
如果你真的想要一个公共的“常数”,一种选择是做这样的事情: public static class Constants { public static readonly bool LOG_ENABLED = false; } 但是,WinRT组件库中也会失败
确实有效的另一种选择是 public static class Constants { public static bool LOG_ENABLED { get { return false; } } } 我不确定为什么在WinRT组件库中不可能有公共const或readonly,因为它可以在普通的类库中. 经过一些阅读后,似乎公共领域仅限于结构,结构可能只包含公共领域. 就像你在评论中所说的那样,如果不从外部源使用它,将其更改为内部是一个不错的选择. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- vb6 – visual studio 6“找到所有引用”?
- SONObject jsonObject=JSONObject.fromObject(map) 执行到这
- xml – 节点名称上的XPath通配符
- 东芝传生产 NIL 技术 NAND Flash,成本降 1 成
- PG Cluster 用非5432端口时的登录方式
- flex接收flashvars参数值
- [Swift]LeetCode1033. 边框着色 | Moving Stones Until Con
- CocoStudio: UI控件的基类Widget
- 通过一个小例子来简单理解C语言中的内存空间管理
- c# – JSON.net直接从oledbconnection序列化