C#:意外字符'$';

本文关键字:字符 意外 | 更新日期: 2023-09-27 18:24:58

我使用ILSpy反编译了一个C#程序集。在VC中将其作为项目打开。
代码的一小部分抛出了我不知道如何修复的错误。这是代码:

public static class CoroutineUtils
{
    [DebuggerHidden]
    public static IEnumerator WaitForRealSeconds(float time)
    {
        CoroutineUtils.<WaitForRealSeconds>c__Iterator2F <WaitForRealSeconds>c__Iterator2F = new CoroutineUtils.<WaitForRealSeconds>c__Iterator2F();
        <WaitForRealSeconds>c__Iterator2F.time = time;
        <WaitForRealSeconds>c__Iterator2F.<$>time = time;
        return <WaitForRealSeconds>c__Iterator2F;
    }
}

这里有一个错误:意外的字符"$"(在本例中位于第8行)。
如果我打开出现错误的.cs文件,编译器会在第6行(就在"CoroutineUtils"之后)再抛出十几个错误,如Identifier
不知道该怎么办。

C#:意外字符'$';

您不能只复制/粘贴反编译的代码并确保它能正常工作。编译器可以使用在C#代码中无效但在IL中有效的标识符。这种情况主要发生在编译器生成的代码中——自动属性、匿名类型、迭代器和转换为状态机的async/await等等。

很难说代码应该做什么,所以也很难说如何修复它。