Boo.Lang.Compiler.Steps.BindTypeMembers.BindClassEvent C# (CSharp) Метод

BindClassEvent() приватный Метод

private BindClassEvent ( Boo.Lang.Compiler.Ast.Event node, IType type, bool typeIsCallable ) : void
node Boo.Lang.Compiler.Ast.Event
type IType
typeIsCallable bool
Результат void
        private void BindClassEvent(Event node, IType type, bool typeIsCallable)
        {
            Field backingField = CodeBuilder.CreateField("___" + node.Name, type);
            if (node.IsTransient)
            {
                backingField.Modifiers |= TypeMemberModifiers.Transient;
            }
            if (node.IsStatic)
            {
                backingField.Modifiers |= TypeMemberModifiers.Static;
            }
            node.DeclaringType.Members.Add(backingField);

            ((InternalEvent)node.Entity).BackingField = (InternalField)backingField.Entity;

            if (null == node.Add)
            {
                node.Add = CreateEventAddMethod(node, backingField);
            }
            else
            {
                Visit(node.Add);
            }

            if (null == node.Remove)
            {
                node.Remove = CreateEventRemoveMethod(node, backingField);
            }
            else
            {
                Visit(node.Remove);
            }

            if (null == node.Raise)
            {
                if (typeIsCallable)
                {
                    node.Raise = CreateEventRaiseMethod(node, backingField);
                }
            }
            else
            {
                Visit(node.Raise);
            }
        }