Mar*_*mro 4 c# enums casting type-conversion
我可以使用整数作为值定义枚举:
public enum FieldType
{
Bar = 0,
Foo = 1
}
Run Code Online (Sandbox Code Playgroud)
为什么C#不允许创建一个以整数为键的字典,并在创建时使用枚举值:
public Dictionary<int, Type> _fieldMapping = new Dictionary<int, Type>
{
{FieldType.Bar, null}, # Error in VS
{FieldType.Foo, null}, # Error in VS
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以做一个演员表,但是我想知道为什么当它实际上是int引擎盖时,enum无法隐式转换为int.
如果你能做到这一点,你将失去使用枚举的一半 - 重点是将它们保持为单独的类型,以避免你犯错误涉及使用类型错误.
在我看来,像你的字典应该真正有FieldType作为的关键-在这一点,你就会有一个更安全的方法.根据您当前的期望,您希望能够使用任何(int基于)的枚举类型作为键,包括FileShare明显不合适的内容.
所以基本上,你应该问自己,从根本上你是否有从字段类型到类型的地图,或者你是否真的有一个数字地图.换句话说,在没有查看的情况FieldType下,地图中的数字从1到有些Type意味着什么?1值代表什么?
| 归档时间: |
|
| 查看次数: |
1189 次 |
| 最近记录: |