本文整理汇总了C#中JsExpression.Index方法的典型用法代码示例。如果您正苦于以下问题:C# JsExpression.Index方法的具体用法?C# JsExpression.Index怎么用?C# JsExpression.Index使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JsExpression
的用法示例。
在下文中一共展示了JsExpression.Index方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateMulticastDelegate
public JsInvocationExpression CreateMulticastDelegate(JsExpression target, JsExpression invocationList)
{
var delegateBody = new JsBlockStatement();
var list = Js.Variable("$invocationList", invocationList);
var i = Js.Variable("$i", Js.Primitive(0));
delegateBody.Add(
Js.For(
i,
i.GetReference().LessThan(list.GetReference().Member("length")),
i.GetReference().Increment()
)
.Body(list.GetReference().Index(i.GetReference()).Member("apply").Invoke(Js.Null(), Js.Reference("arguments")).Express()));
var delegateExpression = Js.Function();
delegateExpression.Body(delegateBody);
var delegateVariable = Js.Variable("$delegate$", delegateExpression);
var delegateType = invocationList.Index(Js.Primitive(0)).Member(SpecialNames.TypeField);
var wrapper = new JsBlockStatement();
wrapper.Local(list);
wrapper.Local(delegateVariable);
wrapper.Assign(delegateVariable.GetReference().Member("prototype"), Js.New(Type(Context.Instance.MulticastDelegateType)));
wrapper.Invoke(Type(Context.Instance.ObjectType).Member(SpecialNames.TypeInitializer), delegateVariable.GetReference(), delegateVariable.GetReference());
wrapper.Invoke(Type(Context.Instance.DelegateType).Member(SpecialNames.TypeInitializer), delegateVariable.GetReference(), delegateVariable.GetReference());
wrapper.Invoke(Type(Context.Instance.MulticastDelegateType).Member(SpecialNames.TypeInitializer), delegateVariable.GetReference(), delegateVariable.GetReference());
wrapper.Invoke(delegateType.Member(SpecialNames.TypeInitializer), delegateVariable.GetReference(), delegateVariable.GetReference());
wrapper.Express(InvokeMethodAs(
Context.Instance.MulticastDelegateConstructor,
delegateVariable.GetReference(),
target,
list.GetReference()));
wrapper.Assign(delegateVariable.GetReference().Member(SpecialNames.TypeField), delegateType);
wrapper.Return(delegateVariable.GetReference());
return Wrap(wrapper);
}