c# - IL Asm 函数名称中的 Unicode?

标签 c# .net unicode clr il

CLR 语言应该能够理解 Unicode,例如我可以在 C# 中定义一个名为 Δ(希腊语 Delta)的函数。但是,当我在 IL Asm 中定义此类函数时,编译器会提示非 ASCII 符号。这个问题有什么解决办法吗?

最佳答案

IL 中的方法名称需要使用单引号。例如代码:

class Class1
{
   public void \u0394() // Greek Delta
   {
      return;
   }
}

...将编译为:

.method public hidebysig instance void  'Δ'() cil managed
{
  // Code size       4 (0x4)
  .maxstack  8
  IL_0000:  nop
  IL_0001:  br.s       IL_0003
  IL_0003:  ret
} // end of method Class1::'Δ'

请注意上面 IL 中方法名称周围的单引号

幸运的是,Visual Studio 足够智能,可以显示实际的 Unicode 字符,这很好:

enter image description here

让所有同事都讨厌你的好方法!

请参阅Spec了解更多信息。

关于c# - IL Asm 函数名称中的 Unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19327644/

相关文章:

c# - 区域特定登录页面

c# - ParallelOptions.CancellationToken 似乎没用

.net - RavenDb 仅返回索引字段

.net - .net 4.5 和 Entity Framework 中的外部应用

php - PHP preg_replace 中的\w 仅覆盖 UTF-8 字符的第二个字节

Mysql SELECT unicode 字符

python - 使用python清理文本文件中的字符串编码问题

c# - 在 MVC(4) 中动态更改 css 的常见做法

c# - MQ 错误原因 : 2058 randomly starts occurring in C# . NET 客户端在正常工作多天后

c# - 如何在 Xamarin Forms 的表格中显示不同类型的项目