Browse Source

Add support for fields with expressions (values) in CSharpTextTemplate

pull/168/head
Øystein Krog 12 years ago
parent
commit
663c91e443
  1. 19
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs

19
src/Generator/Generators/CSharp/CSharpTextTemplate.cs

@ -800,17 +800,26 @@ namespace CppSharp.Generators.CSharp
private void GenerateClassInternalsField(Field field) private void GenerateClassInternalsField(Field field)
{ {
var safeIdentifier = SafeIdentifier(field.OriginalName);
PushBlock(CSharpBlockKind.Field); PushBlock(CSharpBlockKind.Field);
WriteLine("[FieldOffset({0})]", field.OffsetInBytes); WriteLine("[FieldOffset({0})]", field.OffsetInBytes);
var result = field.QualifiedType.CSharpType(TypePrinter); var fieldTypePrinted = field.QualifiedType.CSharpType(TypePrinter);
Write("public {0} {1}", result.Type, SafeIdentifier(field.OriginalName));
if (!string.IsNullOrWhiteSpace(result.NameSuffix)) if (!string.IsNullOrWhiteSpace(fieldTypePrinted.NameSuffix))
Write(result.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); PopBlock(NewLineKind.BeforeNextBlock);
} }

Loading…
Cancel
Save