【发布时间】:2018-09-16 12:34:55
【问题描述】:
它们与 C# 有何不同?
是否有任何标准方法可以在 CIL 中为方法编写名称,并且不能与任何 C# 方法冲突,因为 CIL 名称在 C# 中是非法的?
这样的名称会不会导致其他 .net 语言(例如 F# 或 Visual Basic)出现问题?
C# 中的命名规则示例如下:Method2 是 C# 中方法的合法名称,但 2Method 是非法方法名称,因为名称不能以数字开头,但可能包含数字。 CIL 有哪些命名规则?
我正在编写一个仅由 Il 使用的自动生成方法,我想确保它不会与任何 C# 名称冲突。
【问题讨论】:
-
CLR 接受几乎任何东西。正式地,Unicode TR15,附件 7 中指定的字符集,使用规范化规则 C。它必须支持在其上运行的任何语言的命名规则。值得注意的是 ab/ 被混淆器大量使用,他们将使用不可打印的字符来使其变得困难。所以这不是您需要查看的岩石,而是按照语言指定的内容。