我使用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行)。
如果我打开出现错误的.cs文件,编译器会在第6行开始抛出更多错误,例如标识符预期(在&#34之后; CoroutineUtils。&#34;)
不知道该怎么做。
答案 0 :(得分:4)
您不能只复制/粘贴反编译代码,并确保它可以正常工作。编译器可以使用在C#代码中无效但在IL中有效的标识符。它主要发生在编译器生成的代码中 - 自动属性,匿名类型,迭代器和async
/ await
转换为状态机等等。这就是这种情况。
很难说代码是做什么的,所以很难说如何修复它。