我在学习C#,抓到一段代码我看不懂。我希望你能为我澄清一下。
CreateCustomerTask.<>c__DisplayClass0 cDisplayClass0 =
new CreateCustomerTask.<>c__DisplayClass0();
<>
是什么意思?表示?为什么会有.
(点)在它前面?
最佳答案
您正在查看一些反编译的代码 - 特别是一些由编译器生成的代码。
编译器使用<>
(这是一个实现细节)因为,虽然 CLR 标识符以此类字符开头是有效的,但它在 C# 中无效 - 因此可以保证该名称不会与 C# 代码中的任何名称冲突。
为什么编译器生成此代码的原因各不相同 - 它可能是 lambda、迭代器或异步 block 的实现,也可能是其他一些原因。
而且,希望您的问题的另一部分也得到解答 - 有一个 .
出于通常的原因 - 分隔 namespace 部分,或者在这种情况下更可能将嵌套类的名称与封闭类的名称分开。
关于c# - <>在C#中的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14091474/