c# - <>在C#中的意义

标签 c# .net class

我在学习C#,抓到一段代码我看不懂。我希望你能为我澄清一下。

CreateCustomerTask.<>c__DisplayClass0 cDisplayClass0 =
         new CreateCustomerTask.<>c__DisplayClass0();

<> 是什么意思?表示?为什么会有. (点)在它前面?

最佳答案

您正在查看一些反编译的代码 - 特别是一些由编译器生成的代码。

编译器使用<> (这是一个实现细节)因为,虽然 CLR 标识符以此类字符开头是有效的,但它在 C# 中无效 - 因此可以保证该名称不会与 C# 代码中的任何名称冲突。

为什么编译器生成此代码的原因各不相同 - 它可能是 lambda、迭代器或异步 block 的实现,也可能是其他一些原因。


而且,希望您的问题的另一部分也得到解答 - 有一个 .出于通常的原因 - 分隔 namespace 部分,或者在这种情况下更可能将嵌套类的名称与封闭类的名称分开。

关于c# - <>在C#中的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14091474/

相关文章:

Java-将对象数据保存到文件

c# - 无法通过 IE 访问 WCF 自托管服务

c# - WCF 的不可序列化数据成员

c# - 在 JSON 转换期间过滤掉某些子对象

c# - 当新版本不存在时使用 <bindingRedirect> 到新版本的程序集

java - 如何在Android中扩展两个类?

c# - 将对象引用传递给方法,必须是静态的吗?

c# - 如何在不变得丑陋的情况下使方法可取消?

c# - 了解 lambda 参数语法

java - 无法导入Java类?