/// <inheritdoc /> protected override string GetAccessibilityLevelKeyword(AccessibilityLevel accessibilityLevel, Context ctx) { return(VisualBasicKeywordsUtils.AccessibilityLevelKeyword(accessibilityLevel)); }
/// <inheritdoc /> protected override void HandleProperty(CodeMemberProperty obj, Context ctx, bool isExt, CodeMemberPropertyExt objExt, bool doDefaultImplementation) { if (ctx.Options.DoConsistencyChecks) { if (!doDefaultImplementation && isExt && objExt.PropertyInitializer != null) { throw new ConsistencyException($"Property {obj.Name} can't have initializer if it's not auto-property"); } } if (GeneralUtils.IsNullOrVoidType(obj.PrivateImplementationType)) { ctx.HandlerProvider.MemberAttributesHandler.Handle(obj.Attributes, ctx); } if (obj.HasGet && !obj.HasSet) { ctx.Writer.Write("ReadOnly "); } else if (obj.HasSet && !obj.HasGet) { ctx.Writer.Write("WriteOnly "); } ctx.Writer.Write($"Property "); if (GeneralUtils.IsNullOrVoidType(obj.PrivateImplementationType)) { ctx.Writer.Write(obj.Name.AsVbId()); } else { HandlePrivateImplementationTypeMemberName(obj.Name, obj.PrivateImplementationType, ctx); } ctx.Writer.Write(" As "); ctx.HandlerProvider.TypeReferenceHandler.Handle(obj.Type, ctx); if (doDefaultImplementation) { if (isExt && objExt.PropertyInitializer != null) { ctx.Writer.Write(" = "); ctx.HandlerProvider.ExpressionHandler.Handle(objExt.PropertyInitializer, ctx); } HandleImplementationTypes(obj.ImplementationTypes, obj.Name, ctx); HandlePrivateImplType(obj.PrivateImplementationType, obj.Name, ctx); ctx.Writer.NewLine(); } else { HandleImplementationTypes(obj.ImplementationTypes, obj.Name, ctx); HandlePrivateImplType(obj.PrivateImplementationType, obj.Name, ctx); VisualBasicUtils.BeginBlock(BlockType.Property, ctx); if (obj.HasGet) { ctx.Writer.Indent(ctx); if (isExt && objExt.GetAccessibilityLevel != obj.Attributes.GetAccessibilityLevel()) { ctx.Writer.Write($"{VisualBasicKeywordsUtils.AccessibilityLevelKeyword(objExt.GetAccessibilityLevel)} "); } ctx.Writer.Write("Get"); VisualBasicUtils.HandleStatementCollection(obj.GetStatements, ctx, BlockType.Get); } if (obj.HasSet) { ctx.Writer.Indent(ctx); if (isExt && objExt.SetAccessibilityLevel != obj.Attributes.GetAccessibilityLevel()) { ctx.Writer.Write($"{VisualBasicKeywordsUtils.AccessibilityLevelKeyword(objExt.SetAccessibilityLevel)} "); } ctx.Writer.Write("Set"); VisualBasicUtils.HandleStatementCollection(obj.SetStatements, ctx, BlockType.Set); } VisualBasicUtils.EndBlock(ctx); } }