gpt4 book ai didi

c# - 用户输入,用于使用枚举(C#)调用方法

转载 作者:行者123 更新时间:2023-12-02 10:54:20 25 4
gpt4 key购买 nike

我刚开始使用C#,但遇到了问题。我有一个问题需要回答,该问题需要使用枚举,并且需要使用用户输入来触发切换。到目前为止,我几乎已经弄清了所有错误,但是我只有一个错误不会消失。我还没有足够的C#知识来独自解决这个问题,所以我真的需要帮助。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace enumExample
{
class Program
{
public enum Operator
{
add,
subtract,
multiply,
divide
}

static void Main(string[] args)
{
System.Console.WriteLine("Please enter an integer");
string leftstring = System.Console.ReadLine();
int left = System.Convert.ToInt32(leftstring);

System.Console.WriteLine("Please enter another integer");
string rightstring = System.Console.ReadLine();
int right = System.Convert.ToInt32(rightstring);

System.Console.WriteLine("Please enter '0' to add, '1' to subtract, '2' to multiply, and '3' to divide");
string op = System.Console.ReadLine();
int x = System.Convert.ToInt32(op);

double sum = Calculate(left, right, Operator.op);
System.Console.WriteLine("The answer to your problem is {0}", sum);
System.Console.ReadLine();
}

public static double Calculate(int left, int right, Operator op)
{
double sum = 0.0;

switch (op)
{
case Operator.add:
sum = left + right;
break;
case Operator.subtract:
sum = left - right;
break;
case Operator.multiply:
sum = left * right;
break;
case Operator.divide:
sum = (double)left / right;
break;
default:
System.Console.WriteLine("An error occurred");
System.Console.ReadLine();
break;
}

return sum;
}
}
}

当我去编译程序时,出现以下错误:
Code: CS0117
Description: 'Program.operator' does not contain a definition for 'op'
Project: enumExample
File: Program.cs
Line: 33
Suppression State: Active

感谢您抽出宝贵的时间阅读本文档,也感谢您的任何帮助。

最佳答案

您的运算符(operator)枚举没有名为“op”的值

在第33行,您有:

double sum = Calculate(left, right, Operator.op);

我猜你想写的是
double sum = Calculate(left, right, (Operator)x);

这会将您的int转换为适当的枚举值。

如果您想做更多这类事情,您可能需要考虑显式设置每个枚举值的值。
public enum Operator
{
add = 0,
subtract = 1,
multiply = 2,
divide = 3
};

关于c# - 用户输入,用于使用枚举(C#)调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36361587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com