Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将包含字符的枚举列表设置为*、/、-、%和+;_C#_C# 4.0_Enums_Char - Fatal编程技术网

C# 如何将包含字符的枚举列表设置为*、/、-、%和+;

C# 如何将包含字符的枚举列表设置为*、/、-、%和+;,c#,c#-4.0,enums,char,C#,C# 4.0,Enums,Char,我写了一个计算器程序,有一些主要的操作符,比如+,-,*,/和% 我想创建一个包含这些字符的枚举,用于检查用户输入 这怎么可能呢?这里有一个“方法”: class Operations { public static string Plus = "+"; public static string Minus = "-"; public static string Times = "*"; public static string Divide = "/"; }

我写了一个计算器程序,有一些主要的操作符,比如
+
-
*
/
%

我想创建一个包含这些字符的枚举,用于检查用户输入

这怎么可能呢?

这里有一个“方法”:

class Operations
{
    public static string Plus = "+";
    public static string Minus = "-";
    public static string Times = "*";
    public static string Divide = "/";
}
和使用:

if (input == Operations.Plus) { }
试试这个

 enum chars1 { plus = '+' , minus='-' };
然后你可以像这样使用它

char newChar =(char)chars1.plus;
我想创建一个包含上述字符的可枚举项

这就是你需要的

。。。检查用户操作员输入验证的步骤

很简单:

if (s.Contains(userInput)) { ...

假设用户选择的是
userInput

通常,不能将字符类型声明为枚举的基础。但是,您可以将此变通方法用于扩展方法:

enum Sign // ASCII codes
{
    Mod = 37, // '%'
    Mul = 42, // '*'
    Add = 43, // '+'
    Sub = 45, // '-'
    Div = 47  // '/'
}

static class SignExtension
{
    public static Char ToChar(this Sign s)
    {
        return (s as IConvertible).ToChar(null);
    }
}

class MainClass
{
    static void Main(String[] args)
    {
        Sign op = Sign.Add;

        Char c    = op.ToChar();   // c == '+'
        String s1 = op.ToString(); // s1 == "Add"
        String s2 = c.ToString();  // s2 == "+"
    }
}

小心,Sign.ToString()不会给出所需的结果。您必须调用Sign.ToChar().ToString()才能将符号转换为字符串

老实说,为什么还要麻烦使用这些符号呢?你可以简单地写下单词,比如一个带有和、乘、除、减等的枚举数。你说得对。谢谢。plus.ToString()返回“plus”而不是“+”
enum Sign // ASCII codes
{
    Mod = 37, // '%'
    Mul = 42, // '*'
    Add = 43, // '+'
    Sub = 45, // '-'
    Div = 47  // '/'
}

static class SignExtension
{
    public static Char ToChar(this Sign s)
    {
        return (s as IConvertible).ToChar(null);
    }
}

class MainClass
{
    static void Main(String[] args)
    {
        Sign op = Sign.Add;

        Char c    = op.ToChar();   // c == '+'
        String s1 = op.ToString(); // s1 == "Add"
        String s2 = c.ToString();  // s2 == "+"
    }
}