我需要一种方法来检查运行时中设置的条件。
我有提供自己创建的条件的类。
但是我不知道该怎么做。
至少我想要这样的东西:
int x = 1;
int y = 2;
int z = 3;
string s = "(x == 1 && y == 3) || z == 3";
bool b = bool.Parse(s);
我已经尝试在字符串中说明条件,然后将其转换为布尔值。
主要是我尝试使用此
string s = "true || false";
然后
bool b = false;
bool.TryParse(s, out b);
或
bool b = Convert.ToBoolean(s);
稍后将字符串中的“ true”或“ false”语句放入。 检查各个条件,并用true或false代替。
直到现在都没有工作。
编辑: 我正在开发一个游戏,并且有多个对象根据其各自的情况起作用。但是这些条件是在运行时设置的,它们的长度和复杂性在运行前是未知的。使用字符串是我的第一次尝试,因为我不知道该怎么做。 另外,我只了解基础知识,所以我不了解许多方法和库。
答案 0 :(得分:0)
您可以尝试使用DataTable
利用旧技巧:
using System.Data;
...
private static bool Compute(string formula, int x, int y, int z) {
using (var table = new DataTable()) {
// variables of type int
table.Columns.Add("x").DataType = typeof(int);
table.Columns.Add("y").DataType = typeof(int);
table.Columns.Add("z").DataType = typeof(int);
table.Columns.Add("result").Expression = formula;
table.Rows.Add(x, y, z);
return Convert.ToBoolean(table.Rows[0]["result"]);
}
}
...
// Please, not the syntax difference
Console.Write(Compute("(x = 1 and y = 3) or z = 3", 1, 2, 3));
答案 1 :(得分:0)