Example #1
0
        internal override void Write(ref CodeWriter writer)
        {
            var @static          = _static ? "static " : string.Empty;
            var eventDeclaration = $"{_declaredAccessibility.Code()} {@static}event {_eventDelegateType} {Name}";

            if (!string.IsNullOrEmpty(_explicitImplementation))
            {
                eventDeclaration = $"event {@static}{_eventDelegateType} {_explicitImplementation}.{Name}";
            }

            if (_addHandlerDelegate is null || _removeHandlerDelegate is null)
            {
                writer.AppendLine($"{eventDeclaration};");
                return;
            }

            using (writer.Block(eventDeclaration))
            {
                _addHandlerDelegate(writer);
                _removeHandlerDelegate(writer);
            }
        }