Я получаю сообщение «can not implicitly convert string to char». Я пытаюсь использовать следующий код, как я должен указать приведение в оператор case для оператора < =. любая помощь/направление приветствуются. Благодаря!C# - оператор case для логических операторов
char test1;
switch(test1)
{
case '+':
//do something
break;
case '-' : case '*' : case '<=' :
//method1
break
method 1:
private void method1(char test2)
{
if(test2 == '+' || test2 == '*' || test2.ToString() == "<=")
{
token.Add(test2.ToString());
}
}
нормально, у меня есть method1 так:
private void Method1(char test2)
{
if(test2 == '+' || test2 == '-' || test2 == '/' || test2 == '*')
{
//code
tokens.add(test2);
}
char test1;
switch(test1)
{
case '+': case '-' : case '*': case '/':
Method1(test1);
break;
Я пытаюсь получить маркеры, если есть такое выражение, как (а + Ь) * (а-б). токены - это список строк. но то, что я также пытаюсь сделать здесь, также проверяет логические операторы, если они существуют в выражении ... ex: (a + b) < = 5, в этом случае я хочу проверить, равен ли следующий токен < =, если так добавить его в список токенов, цель состоит в том, чтобы иметь один метод для обработки всех операторов (+, -, *, /, < =,> =, ==,! =) и вызвать его в оператор сложения.
Исправьте код. Этот код не будет компилироваться так, как есть. – ataravati
Если у вас есть один символ, как это может быть два символа? Проверка не имеет смысла в первую очередь. Что вы на самом деле после? – hvd
Кстати, как вы ожидаете, что 'test2.ToString()' будет равно "<="? Как один символ может быть равен двум символам? – ataravati