public override void VisitEventDeclaration (EventDeclaration eventDeclaration) { base.VisitEventDeclaration (eventDeclaration); var fd = new FieldDeclaration { Name = eventDeclaration.Name, ReturnType = new SimpleType ("NEvent", eventDeclaration.ReturnType.Clone ()), }; foreach (var v in eventDeclaration.Variables) { fd.Variables.Add (new VariableInitializer ( v.Name, IsInterface (eventDeclaration.GetParent<TypeDeclaration> ()) ? null : new ObjectCreateExpression (new SimpleType ("NEvent", eventDeclaration.ReturnType.Clone ())))); } eventDeclaration.ReplaceWith (fd); }