/// <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));
 }