C#.Net передайте строку в условие IF и скомпилируйте ее
Здравствуйте друзья,
Я хочу скомпилировать или выполнить строку в состоянии if.У меня есть строка, которая содержит оператор типа conditions.
например:
string test="2>4"; if(test) {//do something } else {}
Я хочу запустить этот тип кода.
Заранее спасибо.
ГАУРАВ МОДИ
ПРИВЕТ JF2015,
Спасибо за ваш ответ,но я не хочу математических parser.it может быть строка.
как моя строка может быть: "('abc'== 'as')&& (122> 34)"
так что в нашем сценарии это неправильно.
так будет называться наша другая часть.
Andreas Gieriet
Решение 1 самый лучший ответ можно дать. Ваш ответ вообще не имеет смысла...
Строка сама по себе-это последовательность символов. Итак, что вы подразумеваете под этим "[...] это может быть строка...]"?
Сначала вы можете спросить себя, в чем разница между:
- string test1 = "2>4";
а ты можешь позвонить if (test1) ...
?
- bool test2 = 2>4 ;
а ты можешь позвонить if (test2) ...
?
gaurav modi
Привет, фрнд, не могли бы вы объяснить мне пример кода, потому что мое состояние содержит слишком много внутренних состояний.Вот моя струна вроде :
"( [abc] >=3) | | ([xyz] == 3 || [xys] == 5)".
хорошо?
И мои слова "[abc] " и "[xyz] " будут заменены любым числом или string.so я хочу разобрать эту новую строку в состоянии IF.
таким образом, я могу выполнить свою следующую строку кода, основанную на результате этого условия IF. Не могли бы вы помочь мне в этом вопросе?
Andreas Gieriet
Каково ваше понимание синтаксического анализа? Есть опыт?
Прежде всего я должен понять каковы ваши ожидания:
- Это выражение синтаксиса C# или SQL или как бы совершенно самостоятельно придумали?
- А где же ... [name]
откуда? Это местная разновидность или что-то другое?
- Насколько сложным может быть [имя]? Напр. inst.part.section.para[5].sent[3].word[2]
- Что такое система типов? Все double
только или какие-то другие типы тоже разрешены? А как насчет совместимости типов? например, могу ли я сравнить double
с bool
?
Чего именно ты хочешь? Если это будет "как если бы я ввел его в C#", то вы должны пойти на Объект codedomprovider подход.
Andreas Gieriet
Почему у вас есть строка, а не выражение непосредственно в C#?
Откуда у тебя такое выражение лица? Из графического интерфейса?
Если выражение дано в тексте (строке), то, пожалуйста, взгляните на подписи ниже или любые другие Google: парсер выражений C# Пример кода - от 30 строк до нескольких сотен. Я не буду размещать их здесь. Пожалуйста, поищите в интернете.
Наконец: это домашнее задание?
gaurav modi
привет спасибо за Ваш ответ,
существует сравнение между string to string и int to int. но одна строка содержит проверку обоих типов.
предположим, моя строка выглядит так :
строка s = "(объект.statename !=\"Тест\" ) и усилитель; & (объект.Перт !=\"АЗ\")";
хорошо?
А obj. statename и obj.cityname имеют значение во время выполнения.
obj-это мой класс, а statename и cityname-свойства этого класса.
поэтому я хочу просто знать, что данное условие строки истинно или ложно.
Andreas Gieriet
См. мое решение № 4 ниже.
Овации
Энди