diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index f7338f0e..b8e5fcec 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -581,37 +581,42 @@ namespace CppSharp.Generators.CSharp foreach (var field in @class.Fields) { - if (ASTUtils.CheckIgnoreField(@class, field)) continue; + GenerateClassField(@class, isInternal, field); + } + } - PushBlock(CSharpBlockKind.Field); + private void GenerateClassField(Class @class, bool isInternal, Field field) + { + if (ASTUtils.CheckIgnoreField(@class, field)) return; - if (isInternal) - { - WriteLine("[FieldOffset({0})]", field.OffsetInBytes); + PushBlock(CSharpBlockKind.Field); - var result = field.Type.Visit(TypePrinter, field.QualifiedType.Qualifiers); + if (isInternal) + { + WriteLine("[FieldOffset({0})]", field.OffsetInBytes); - Write("public {0} {1}", result.Type, SafeIdentifier(field.OriginalName)); + var result = field.Type.Visit(TypePrinter, field.QualifiedType.Qualifiers); - if (!string.IsNullOrWhiteSpace(result.NameSuffix)) - Write(result.NameSuffix); + Write("public {0} {1}", result.Type, SafeIdentifier(field.OriginalName)); - WriteLine(";"); - } - else if (@class.IsRefType) - { - GenerateFieldProperty(field); - } - else - { - GenerateDeclarationCommon(field); - if (@class.IsUnion) - WriteLine("[FieldOffset({0})]", field.Offset); - WriteLine("public {0} {1};", field.Type, SafeIdentifier(field.Name)); - } + if (!string.IsNullOrWhiteSpace(result.NameSuffix)) + Write(result.NameSuffix); - PopBlock(NewLineKind.BeforeNextBlock); + WriteLine(";"); + } + else if (@class.IsRefType) + { + GenerateFieldProperty(field); } + else + { + GenerateDeclarationCommon(field); + if (@class.IsUnion) + WriteLine("[FieldOffset({0})]", field.Offset); + WriteLine("public {0} {1};", field.Type, SafeIdentifier(field.Name)); + } + + PopBlock(NewLineKind.BeforeNextBlock); } #endregion