Пример #1
0
        /// <summary>
        /// Creates a statement for raising an event.
        /// </summary>
        /// <param name="isCSharp">If this is C#.</param>
        /// <param name="ev">The event to raise.</param>
        /// <param name="parameters">The parameters to pass when raising the event.</param>
        /// <returns>The statement that raises the event.</returns>
        internal static CodeStatement MakeEventRaiseStatement(bool isCSharp, CodeEventReferenceExpression ev, params CodeExpression[] parameters)
        {
            CodeDelegateInvokeExpression eventInvocation = new CodeDelegateInvokeExpression(ev, parameters);

            if (isCSharp)
            {
                CodeConditionStatement eventNotNullStatement = new CodeConditionStatement();
                eventNotNullStatement.Condition = CodeGenUtilities.MakeNotEqualToNull(new CodeVariableReferenceExpression(ev.EventName));
                eventNotNullStatement.TrueStatements.Add(eventInvocation);
                return(eventNotNullStatement);
            }
            else
            {
                return(new CodeExpressionStatement(eventInvocation));
            }
        }