diff --git a/JavaToCSharp/TypeHelper.cs b/JavaToCSharp/TypeHelper.cs index 6bb5f6b..876ae98 100644 --- a/JavaToCSharp/TypeHelper.cs +++ b/JavaToCSharp/TypeHelper.cs @@ -118,12 +118,91 @@ public static string Capitalize(string name) public static string EscapeIdentifier(string name) { // @ (C# Reference): https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/verbatim - return name switch { - "string" or "ref" or "object" or "int" or "short" or "float" or "long" or "double" or "decimal" or "in" or - "out" or "byte" or "class" or "delegate" or "params" or "is" or "as" or "base" or "namespace" or "event" or - "lock" or "operator" or "override" => "@" + name, - _ => name, - }; + //C# Keywords: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ + switch (name) + { + case "abstract": + case "as": + case "base": + case "bool": + case "break": + case "byte": + case "case": + case "catch": + case "char": + case "checked": + case "class": + case "const": + case "continue": + case "decimal": + case "default": + case "delegate": + case "do": + case "double": + case "else": + case "enum": + case "event": + case "explicit": + case "extern": + case "false": + case "finally": + case "fixed": + case "float": + case "for": + case "foreach": + case "goto": + case "if": + case "implicit": + case "in": + case "int": + case "interface": + case "internal": + case "is": + case "lock": + case "long": + case "namespace": + case "new": + case "null": + case "object": + case "operator": + case "out": + case "override": + case "params": + case "private": + case "protected": + case "public": + case "readonly": + case "ref": + case "return": + case "sbyte": + case "sealed": + case "short": + case "sizeof": + case "stackalloc": + case "static": + case "string": + case "struct": + case "switch": + case "this": + case "throw": + case "true": + case "try": + case "typeof": + case "uint": + case "ulong": + case "unchecked": + case "unsafe": + case "ushort": + case "using": + case "virtual": + case "void": + case "volatile": + case "while": + return "@" + name; + + default: + return name; + } } public static string ReplaceCommonMethodNames(string name)