我正试图像这样做一个莫尔斯的枚举:
public enum Morse : String
{
medzera = " ",
a=".-",
b="-...",
c="-.-.",
d="-..",
e=".",
f="..-.",
g="--.",
h="....",
i="..",
j=".---",
k="-.-",
l=".-..",
m="--",
n="-.",
o="---",
p=".--.",
q="--.-",
r=".-.",
s="...",
t="-",
u="..-",
v=...-",
w=".--",
x="-..-",
y="-.--",
z="--..",
}
但它会引发错误。
答案 0 :(得分:3)
否则您无法创建字符串枚举,但使用Dictionary<char,string>
Dictionary<char,string> letters = new Dictionary<char,string>(){
{'a' , ".-"},
.....
{'z' , "--.."}
};
用法类似于
var input = "az";
var output = string.Join("/", input.Select(c => letters[c]));
答案 1 :(得分:2)
来自MSDN:
枚举的已批准类型为
sbyte
,short
,ushort
,int
,uint
,long
,{{1} },或ulong
。
答案 2 :(得分:2)
您正尝试使用string
枚举,这是不可能的。每个枚举类型都有一个基础类型,除了char
之外,它可以是任何整数类型。有关详细信息,请参阅Documentation。您可能需要查看此帖子以了解替代解决方案How to define an enum with string value?