From 663c91e4433452551f19fe61749ac0afb4df4796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Krog?= Date: Tue, 11 Feb 2014 22:36:33 +0100 Subject: [PATCH] Add support for fields with expressions (values) in CSharpTextTemplate --- .../Generators/CSharp/CSharpTextTemplate.cs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index 2e3d5e1e..4bf36fb6 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -800,17 +800,26 @@ namespace CppSharp.Generators.CSharp private void GenerateClassInternalsField(Field field) { + var safeIdentifier = SafeIdentifier(field.OriginalName); + PushBlock(CSharpBlockKind.Field); WriteLine("[FieldOffset({0})]", field.OffsetInBytes); - var result = field.QualifiedType.CSharpType(TypePrinter); - Write("public {0} {1}", result.Type, SafeIdentifier(field.OriginalName)); + var fieldTypePrinted = field.QualifiedType.CSharpType(TypePrinter); - if (!string.IsNullOrWhiteSpace(result.NameSuffix)) - Write(result.NameSuffix); + if (!string.IsNullOrWhiteSpace(fieldTypePrinted.NameSuffix)) + safeIdentifier += fieldTypePrinted.NameSuffix; - WriteLine(";"); + if (field.Expression != null) + { + var fieldValuePrinted = field.Expression.CSharpValue(ExpressionPrinter); + Write("public {0} {1} = {2};", fieldTypePrinted.Type, safeIdentifier, fieldValuePrinted); + } + else + { + Write("public {0} {1};", fieldTypePrinted.Type, safeIdentifier); + } PopBlock(NewLineKind.BeforeNextBlock); }