C#:意想不到的角色' $'

时间:2014-09-29 06:45:02

标签: c#

我使用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;
    }
}

以下是错误:意外字符&#39; $&#39; (在本案例中为第8行)。
如果我打开出现错误的.c​​s文件,编译器会在第6行开始抛出更多错误,例如标识符预期(在&#34之后; CoroutineUtils。&#34;)
不知道该怎么做。

1 个答案:

答案 0 :(得分:4)

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

很难说代码是做什么的,所以很难说如何修复它。