/// <inheritdoc/> protected override void HandleProperty(CodeMemberProperty obj, Context ctx, bool isExt, CodeMemberPropertyExt objExt, bool doDefaultImplementation) { if (obj.PrivateImplementationType == null) { ctx.HandlerProvider.MemberAttributesHandler.Handle(obj.Attributes, ctx); } ctx.HandlerProvider.TypeReferenceHandler.Handle(obj.Type, ctx); ctx.Writer.Write(" "); if (obj.PrivateImplementationType == null) { ctx.Writer.Write(obj.Name.AsCsId()); } else { HandlePrivateImplementationTypeMemberName(obj.Name, obj.PrivateImplementationType, ctx); } ctx.Writer.NewLine(); ctx.Writer.IndentAndWriteLine("{", ctx); ctx.Indent(); if (obj.HasGet) { ctx.Writer.Indent(ctx); if (isExt && objExt.GetAccessibilityLevel != obj.Attributes.GetAccessibilityLevel() && obj.PrivateImplementationType == null) { ctx.Writer.Write($"{CSharpKeywordsUtils.AccessibilityLevelKeyword(objExt.GetAccessibilityLevel)} "); } ctx.Writer.Write("get"); if (doDefaultImplementation) { ctx.Writer.WriteLine(";"); } else { CSharpUtils.HandleStatementCollection(obj.GetStatements, ctx); } } if (obj.HasSet) { ctx.Writer.Indent(ctx); if (isExt && objExt.SetAccessibilityLevel != obj.Attributes.GetAccessibilityLevel() && obj.PrivateImplementationType == null) { ctx.Writer.Write($"{CSharpKeywordsUtils.AccessibilityLevelKeyword(objExt.SetAccessibilityLevel)} "); } ctx.Writer.Write("set"); if (doDefaultImplementation) { ctx.Writer.WriteLine(";"); } else { CSharpUtils.HandleStatementCollection(obj.SetStatements, ctx); } } ctx.Unindent(); ctx.Writer.IndentAndWrite("}", ctx); if (isExt && objExt.PropertyInitializer != null) { ctx.Writer.Write(" = "); ctx.HandlerProvider.ExpressionHandler.Handle(objExt.PropertyInitializer, ctx); ctx.Writer.Write(";"); } ctx.Writer.NewLine(); }
/// <inheritdoc/> protected override string GetAccessibilityLevelKeyword(AccessibilityLevel accessibilityLevel, Context ctx) { return(CSharpKeywordsUtils.AccessibilityLevelKeyword(accessibilityLevel)); }