本文整理汇总了C#中Context.SetValue方法的典型用法代码示例。如果您正苦于以下问题:C# Context.SetValue方法的具体用法?C# Context.SetValue怎么用?C# Context.SetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Context
的用法示例。
在下文中一共展示了Context.SetValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Invoke
public object Invoke(IContext context, object @this, object[] arguments)
{
// TODO review: any case for use context parameter?
IContext newctx = new Context(this.context);
// Set this and arguments
newctx.DefineVariable("this");
newctx.SetValue("this", @this);
newctx.DefineVariable("arguments");
newctx.SetValue("arguments", arguments);
for (int k = 0; arguments != null && k < arguments.Length && k < this.Arity; k++)
{
newctx.DefineVariable(parameterNames[k]);
newctx.SetValue(parameterNames[k], arguments[k]);
}
// TODO Review: it should be null?
if (this.Body != null)
this.Body.Execute(newctx);
// TODO Review: return undefined it not this?
if (newctx.ReturnValue == null)
if (@this != null)
return @this;
else
return Undefined.Instance;
return newctx.ReturnValue.Value;
}
示例2: EvaluateExpressionBody
public void EvaluateExpressionBody()
{
Function function = new Function(null, new object[] { }, new AddExpression(new VariableExpression(new Variable("X")), new VariableExpression(new Variable("Y"))));
Context context = new Context();
context.SetValue("X", 1);
context.SetValue("Y", 2);
Assert.AreEqual(3, function.Evaluate(context));
}
示例3: GetNamesWhenTwoValuesAreDefined
public void GetNamesWhenTwoValuesAreDefined()
{
Context context = new Context();
context.SetValue("One", 1);
context.SetValue("Two", 2);
var result = context.GetNames();
Assert.IsNotNull(result);
Assert.AreEqual(2, result.Count);
Assert.IsTrue(result.Contains("One"));
Assert.IsTrue(result.Contains("Two"));
}
示例4: EvaluateEmptyArray
public void EvaluateEmptyArray()
{
Context context = new Context();
var objfn = new ObjectFunction(context);
var arrfn = new ArrayFunction(context);
context.SetValue("Object", objfn);
context.SetValue("Array", arrfn);
InstanceOfExpression expr = new InstanceOfExpression(new ConstantExpression(objfn.NewInstance(null)), new VariableExpression("Object"));
var result = expr.Evaluate(context);
Assert.IsNotNull(result);
Assert.AreEqual(true, result);
}
示例5: HasValue
public void HasValue()
{
Context context = new Context();
context.SetValue("One", 1);
Assert.IsTrue(context.HasValue("One"));
Assert.IsFalse(context.HasValue("Foo"));
}
示例6: SetAndGetValue
public void SetAndGetValue()
{
Context context = new Context();
context.SetValue("a", "One");
Assert.AreEqual("One", context.GetValue("a"));
}
示例7: GetValueFromParent
public void GetValueFromParent()
{
Context parent = new Context();
Context context = new Context(parent);
parent.SetValue("One", 1);
Assert.AreEqual(1, context.GetValue("One"));
}
示例8: EvaluateCallExpressionWithVariableInName
public void EvaluateCallExpressionWithVariableInName()
{
Context context = new Context();
Function function = new Function(context, new object[] { new Variable("X"), new Variable("Y") }, new AddExpression(new VariableExpression(new Variable("X")), new VariableExpression(new Variable("Y"))));
context.SetValue("add/2", function);
context.SetValue("A", new Atom("add"));
CallExpression expr = new CallExpression(new VariableExpression(new Variable("A")), new IExpression[] { new ConstantExpression(1), new ConstantExpression(2) });
Assert.IsTrue(expr.HasVariable());
Assert.IsNotNull(expr.NameExpression);
Assert.IsInstanceOfType(expr.NameExpression, typeof(VariableExpression));
Assert.IsNotNull(expr.ArgumentExpressions);
Assert.AreEqual(2, expr.ArgumentExpressions.Count);
Assert.AreEqual(3, expr.Evaluate(context));
}
示例9: Main
static void Main(string[] args)
{
IContext context = new Context();
Parser parser = new Parser(System.Console.In);
context.DefineVariable("write");
context.SetValue("write", new WriteFunction());
context.DefineVariable("writeln");
context.SetValue("writeln", new WriteLineFunction());
context.DefineVariable("Object");
context.SetValue("Object", new ObjectFunction(context));
Console.WriteLine("AjScript 0.1 (JavaScript-like Interpreter in C#)");
for (ICommand cmd = parser.ParseCommand(); cmd != null; cmd = parser.ParseCommand())
cmd.Execute(context);
}
示例10: IsSatisfiedByStringInContext
public void IsSatisfiedByStringInContext()
{
Context context = new Context();
context.SetValue("p", "123");
PropertyIsFact fact = new PropertyIsFact("p", "Length", 3);
fact.IsSatisfiedByContext(context);
}
示例11: SetAndGetValue
public void SetAndGetValue()
{
Context context = new Context();
context.SetValue("one", 1);
Assert.AreEqual(1, context.GetValue("one"));
}
示例12: EvaluateDefinedVariable
public void EvaluateDefinedVariable()
{
Context context = new Context();
context.SetValue("One", 1);
NameExpression expr = new NameExpression("One");
Assert.AreEqual(1, expr.Evaluate(context));
}
示例13: Apply
public object Apply(Context context, IList<object> arguments)
{
Atom atom = (Atom)arguments[0];
Module module = this.machine.LoadModule(atom.Name);
context.SetValue(module.Name, module);
Tuple tuple = new Tuple(new object[] { new Atom("ok"), new Atom(module.Name) });
return tuple;
}
示例14: SetAndGetValue
public void SetAndGetValue()
{
var ctx = new Context<object>();
ctx.SetValue("foo", 42);
Assert.AreEqual(42, ctx.GetValue("foo"));
}
示例15: SetAndGetValueWithParent
public void SetAndGetValueWithParent()
{
Context parent = new Context();
Context context = new Context(parent);
context.SetValue("One", 1);
Assert.AreEqual(1, context.GetValue("One"));
Assert.IsNull(parent.GetValue("One"));
}