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#代码中无效但在IL中有效的标识符。这种情况主要发生在编译器生成的代码中——自动属性、匿名类型、迭代器和转换为状态机的async
/await
等等。
很难说代码应该做什么,所以也很难说如何修复它。