本文整理汇总了C#中IEvent.IsAutomatic方法的典型用法代码示例。如果您正苦于以下问题:C# IEvent.IsAutomatic方法的具体用法?C# IEvent.IsAutomatic怎么用?C# IEvent.IsAutomatic使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IEvent
的用法示例。
在下文中一共展示了IEvent.IsAutomatic方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: _Visit
public override JsNode _Visit(IEvent ee)
{
if (ee.DeclaringType.Kind == TypeKind.Interface)
return null;
var list2 = new JsNodeList { Nodes = new List<JsNode>() };
if (ee.IsAutomatic(Compiler.Project))
{
var adder = GenerateAutomaticEventAccessor(ee, false);
var remover = GenerateAutomaticEventAccessor(ee, true);
//TODO:
//var adder = Js.Code(String.Format("function(value){{this.{0}=CombineDelegates(this.{0}, value);}}", ee.Name));
//var remover = Js.Code(String.Format("function(value){{this.{0}=RemoveDelegate(this.{0}, value);}}", ee.Name));
list2.Nodes.Add(Js.JsonNameValue("add_" + ee.Name, adder));
list2.Nodes.Add(Js.JsonNameValue("remove_" + ee.Name, remover));
}
else
{
var list = new List<IMethod>();
if (ee.AddAccessor != null)
{
if (ee.AddAccessor.Name == null)
{
throw new NotImplementedException();
//ee.AddAccessor.Name = "add_" + ee.Name;
}
list.Add(ee.AddAccessor);
}
if (ee.RemoveAccessor != null)
{
if (ee.RemoveAccessor.Name == null)
throw new NotImplementedException();
//ee.RemoveAccessor.name = "remove_" + ee.name;
list.Add(ee.RemoveAccessor);
}
foreach (var node in list)
{
var node2 = Visit(node);
//if (node2 == null)
// throw new CompilerException(ee, "Export of event accessor returned null");
list2.Nodes.Add(node2);
}
}
return list2;
}