我在查看YUI Compressor时,偶然发现了ECMA.NET项目中的这段代码(如果您感兴趣,请参阅续集文件)。
protected internal override int FindPrototypeId (string s)
{
int id;
#region Generated PrototypeId Switch
L0: {
id = 0;
string X = null;
if (s.Length == 11) { X = "constructor"; id = Id_constructor; }
if (X != null && X != s && !X.Equals (s))
id = 0;
}
EL0:
#endregion
return id;
}
我不知道L0:和EL0:在这里做什么,他们以前从来没有见过这个。对于谷歌来说,这个术语似乎也太初级了。
有人知道这件事吗?
发布于 2009-04-07 12:35:32
它们看起来像标签,可以用作goto目标。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/13940fs2.aspx。
发布于 2009-04-07 12:36:22
在我看来,它们就像是标签。标签在本例中没有使用(因为它是生成的代码?),但可以用来跳转到另一个地方。您可以使用goto L0;
跳过第一个标签。例如,下面的代码只写"Hello,World“,因为它跳过了中间的Write()
Console.Write("Hello, ");
goto Last;
Console.Write("Cruel ");
Last:
Console.WriteLine("World");
发布于 2009-04-07 12:36:28
这些是标签,如GOTO中的标签。
https://stackoverflow.com/questions/727469
复制相似问题