我只想创建像这样的运算符,但这会产生错误。
Public enum MyOperators {"<", "<=", ">", ">="}
关于SO的建议,我试过这样的事情。
Public enum MyOperators {
Less ='<',
LessOrEqual = '<=',
Greater = '>',
GreaterOrEqual = '>='
}
现在它不喜欢LessOrEqual和GreaterOrEqual中的'='符号。
对于c#运算符,您可以看到MS如何在MS引用here处对其进行处理。 我也可以这样做,但我只是想看看是否有更好的建议。
修改
如果你可以在没有list和switch语句的情况下完成这项工作,你会回答我的问题
enum MyOperators {"<", "<=", ">", ">="}
string s = Console.ReadLine();
MyOperators op;
if (Enum.TryParse(s, true, out op)) {
//user entered operator
}
else {
//not operator
}
答案 0 :(得分:2)
枚举值通常为int
类型。因此,您无法分配string
或char
类型的对象。你可能会误解枚举的概念以及何时使用它。
正如Abion47所说:&#34; ...枚举类型可以声明为byte
到ulong
之间的任何本机整数类型以及介于两者之间的所有内容。 [...]这不包括char
。 [...] char
可隐式转换为int
,因此您可以为字符文字分配整数枚举。&#34;
您似乎在寻找常量列表。因为我不知道你想要用你的&#34; enum&#34;试试这个,它可能有所帮助:
public static class MyOperators
{
public const string Less = "<";
public const string LessOrEqual = "<=";
public const string Greater = ">";
public const string GreaterOrEqual = ">=";
}
答案 1 :(得分:2)
根据您的编辑,您可以轻松地使用列表提供该功能,因此我不确定您为什么不想要它。例如,您可以这样做:
foreach ($data as $row)
{
echo $string = $data['u_name'].' '.$data['u_surname'];
}
如果您愿意,甚至可以将列表替换为数组。