本文整理汇总了C#中CalculationEngine.GetResult方法的典型用法代码示例。如果您正苦于以下问题:C# CalculationEngine.GetResult方法的具体用法?C# CalculationEngine.GetResult怎么用?C# CalculationEngine.GetResult使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CalculationEngine
的用法示例。
在下文中一共展示了CalculationEngine.GetResult方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestBatchLoad
public void TestBatchLoad()
{
// Test that we can add expressions in any order
CalculationEngine engine = new CalculationEngine();
ExpressionContext context = new ExpressionContext();
int interest = 2;
context.Variables.Add("interest", interest);
BatchLoader loader = engine.CreateBatchLoader();
loader.Add("c", "a + b", context);
loader.Add("a", "100 + interest", context);
loader.Add("b", "a + 1 + a", context);
// Test an expression with a reference in a string
loader.Add("d", "\"str \\\" str\" + a + \"b\"", context);
engine.BatchLoad(loader);
int result = engine.GetResult<int>("b");
Assert.AreEqual((100 + interest) + 1 + (100 + interest), result);
interest = 300;
context.Variables["interest"] = interest;
engine.Recalculate("a");
result = engine.GetResult<int>("b");
Assert.AreEqual((100 + interest) + 1 + (100 + interest), result);
result = engine.GetResult<int>("c");
Assert.AreEqual((100 + interest) + 1 + (100 + interest) + (100 + interest), result);
Assert.AreEqual("str \" str400b", engine.GetResult<string>("d"));
}
示例2: TestBasic
public void TestBasic()
{
CalculationEngine ce = new CalculationEngine();
ExpressionContext context = new ExpressionContext();
VariableCollection variables = context.Variables;
variables.Add("x", 100);
ce.Add("a", "x * 2", context);
variables.Add("y", 1);
ce.Add("b", "a + y", context);
ce.Add("c", "b * 2", context);
ce.Recalculate("a");
int result = ce.GetResult<int>("c");
Assert.AreEqual(result, ((100 * 2) + 1) * 2);
variables["x"] = 345;
ce.Recalculate("a");
result = ce.GetResult<int>("c");
Assert.AreEqual(((345 * 2) + 1) * 2, result);
}
示例3: TestCalcEngineAtom
public void TestCalcEngineAtom()
{
// Test that calc engine atom reference work properly
CalculationEngine engine = new CalculationEngine();
ExpressionContext context = new ExpressionContext();
engine.Add("a", "\"abc\"", context);
engine.Add("b", "a.length", context);
engine.Add("c", "a.startswith(\"a\")", context);
int result = engine.GetResult<int>("b");
Assert.AreEqual("abc".Length, result);
Assert.AreEqual(true, engine.GetResult<bool>("c"));
}
示例4: TestWithReferenceTypes
public void TestWithReferenceTypes()
{
CalculationEngine ce = new CalculationEngine();
ExpressionContext context = new ExpressionContext();
VariableCollection variables = context.Variables;
variables.Add("x", "string");
ce.Add("a", "x + \" \"", context);
variables.Add("y", "word");
ce.Add("b", "y", context);
ce.Add("c", "a + b", context);
ce.Recalculate("b", "a");
string result = ce.GetResult<string>("c");
Assert.AreEqual("string" + " " + "word", result);
}
示例5: TestRecalculateNonSource
public void TestRecalculateNonSource()
{
// Test recalculate with a non-source
CalculationEngine ce = new CalculationEngine();
ExpressionContext context = new ExpressionContext();
VariableCollection variables = context.Variables;
variables.Add("x", 100);
ce.Add("a", "x * 2", context);
variables.Add("y", 1);
ce.Add("b", "a + y", context);
ce.Add("c", "b * 2", context);
ce.Recalculate("a", "b");
int result = ce.GetResult<int>("c");
Assert.AreEqual(((100) * 2 + 1) * 2, result);
}
示例6: TestMutipleIdenticalReferences
public void TestMutipleIdenticalReferences()
{
CalculationEngine ce = new CalculationEngine();
ExpressionContext context = new ExpressionContext();
VariableCollection variables = context.Variables;
variables.Add("x", 100);
ce.Add("a", "x * 2", context);
ce.Add("b", "a + a + a", context);
ce.Recalculate("a");
int result = ce.GetResult<int>("b");
Assert.AreEqual((100 * 2) * 3, result);
}
示例7: TestComplex
public void TestComplex()
{
CalculationEngine ce = new CalculationEngine();
ExpressionContext context = new ExpressionContext();
VariableCollection variables = context.Variables;
variables.Add("x", 100);
ce.Add("a", "x * 2", context);
variables.Add("y", 24);
ce.Add("b", "y * 2", context);
ce.Add("c", "a + b", context);
ce.Add("d", "80", context);
ce.Add("e", "a + b + c + d", context);
ce.Recalculate("d");
ce.Recalculate(new string[] {
"a",
"b"
});
int result = ce.GetResult<int>("e");
Assert.AreEqual((100 * 2) + (24 * 2) + ((100 * 2) + (24 * 2)) + 80, result);
}