我试图了解Enums一般的一些事情以及它们如何与之合作Chars.以下是我工作的例子:
public enum AuditInteractionTypes
{
Authorized = 'A',
Created = 'C',
Revised = 'R',
Extracted = 'E',
Deleted = 'D'
}
Run Code Online (Sandbox Code Playgroud)
首先,什么是宣布他们之间的差异enum AuditInteractionTypes或enum AuditInteractionTypes : char
其次,我看过很多关于尝试使用的帖子Enums,chars以及如何"让"它来回运作.可能是愚蠢的问题,但为什么我不能简单地来回走动string.
所以,例如,Authorized = "A".
我使用Linq To SQL作为我的DAL,如果这很重要,我希望,这是一个更广泛的问题,不是特定于我的环境.
cas*_*One 13
它规定了用于存储枚举的基础类型.
当您使用enum其他任何东西时,它使用a int作为底层存储类型.
使用时enum : <type>,它使用该类型作为底层存储类型.
在你的情况下,char根据C#参考,你试图创建基础类型的类型,但这是无效的:
枚举的已批准类型是byte,sbyte,short,ushort,int,uint,long或ulong.
如果要存储char值,则有两个选项.
您可以使用基础类型ushort(它是无符号的16位整数char),如下所示:
public enum AuditInteractionTypes : ushort
{
Authorized = 'A',
Created = 'C',
Revised = 'R',
Extracted = 'E',
Deleted = 'D'
}
Run Code Online (Sandbox Code Playgroud)
char有一个隐含的转换,ushort所以上面的工作.此外,您可以轻松地比较两者.
如果你想使用一个字符串作为值,那么我建议使用enum类似的类,如下所示:
public static class AuditInteractionTypes
{
// You can make these static readonly if they are likely to change.
public const string Authorized = "A";
public const string Created = "C";
public const string Revised = "R";
public const string Extracted = "E";
public const string Deleted = "D";
}
Run Code Online (Sandbox Code Playgroud)
然后,这个类几乎看起来和a enum和代码一样.
注意,可以使用任何类型完成相同的技巧,但通常这些类型应该是完全不可变的. string很好地填充了这个指南,完全不可变(如果你正确设计它们,就像大多数系统值类型和其他值类型一样).
| 归档时间: |
|
| 查看次数: |
3718 次 |
| 最近记录: |