|
|
|
@ -224,16 +224,9 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
@@ -224,16 +224,9 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
|
|
|
|
|
tokenWriter.WritePrimitiveValue(value); |
|
|
|
|
return writer.ToString(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override void WritePrimitiveValue(object value, string literalValue = null) |
|
|
|
|
|
|
|
|
|
public override void WritePrimitiveValue(object value, LiteralFormat format = LiteralFormat.None) |
|
|
|
|
{ |
|
|
|
|
if (literalValue != null) { |
|
|
|
|
textWriter.Write(literalValue); |
|
|
|
|
column += literalValue.Length; |
|
|
|
|
Length += literalValue.Length; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (value == null) { |
|
|
|
|
// usually NullReferenceExpression should be used for this, but we'll handle it anyways
|
|
|
|
|
textWriter.Write("null"); |
|
|
|
@ -346,12 +339,12 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
@@ -346,12 +339,12 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
|
|
|
|
|
Length += number.Length; |
|
|
|
|
} else if (value is IFormattable) { |
|
|
|
|
StringBuilder b = new StringBuilder(); |
|
|
|
|
// if (primitiveExpression.LiteralFormat == LiteralFormat.HexadecimalNumber) {
|
|
|
|
|
// b.Append("0x");
|
|
|
|
|
// b.Append(((IFormattable)val).ToString("x", NumberFormatInfo.InvariantInfo));
|
|
|
|
|
// } else {
|
|
|
|
|
b.Append(((IFormattable)value).ToString(null, NumberFormatInfo.InvariantInfo)); |
|
|
|
|
// }
|
|
|
|
|
if (format == LiteralFormat.HexadecimalNumber) { |
|
|
|
|
b.Append("0x"); |
|
|
|
|
b.Append(((IFormattable)value).ToString("X", NumberFormatInfo.InvariantInfo)); |
|
|
|
|
} else { |
|
|
|
|
b.Append(((IFormattable)value).ToString(null, NumberFormatInfo.InvariantInfo)); |
|
|
|
|
} |
|
|
|
|
if (value is uint || value is ulong) { |
|
|
|
|
b.Append("u"); |
|
|
|
|
} |
|
|
|
@ -369,6 +362,11 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
@@ -369,6 +362,11 @@ namespace ICSharpCode.Decompiler.CSharp.OutputVisitor
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override void WriteInterpolatedText(string text) |
|
|
|
|
{ |
|
|
|
|
textWriter.Write(ConvertString(text)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the escape sequence for the specified character within a char literal.
|
|
|
|
|
/// Does not include the single quotes surrounding the char literal.
|
|
|
|
|