今天我打开了一个微软的.Net正则表达式实现,它让我觉得这可能是gotoC#语言中存在语句的唯一原因(它主要强调'开发者'概念的清晰度,其中goto似乎完全没有位置)也可能是微软使用CLR库实现的唯一原因 - 性能提升.我还记得在System.Web.UI.dll中微软的ASP.NET页面/控件渲染中看到类似的优化.这是一个有效的(或记录在案的?)假设吗?你见过它使用微软下,除了提高代码执行时间任何其他情况?谢谢.
以下是微软自己的正则表达式实现中的摘录(不仅仅是在细节上进行检查),它们再次广泛使用goto来实现性能提升:
public override void Go()
{
int num4;
int num5;
string runtext = base.runtext;
int runtextstart = base.runtextstart;
int runtextbeg = base.runtextbeg;
int runtextend = base.runtextend;
int runtextpos = base.runtextpos;
int[] runtrack = base.runtrack;
int runtrackpos = base.runtrackpos;
int[] runstack = base.runstack;
int runstackpos = base.runstackpos;
runtrack[--runtrackpos] = runtextpos;
runtrack[--runtrackpos] = 0;
runstack[--runstackpos] = runtextpos;
runtrack[--runtrackpos] = 1;
if ((((runtextpos != base.runtextstart) ||
(4 > (runtextend - runtextpos))) ||
((runtext[runtextpos] != …Run Code Online (Sandbox Code Playgroud)