.net編譯器是否知道從下面的代碼中產生尾遞歸? (這意味着它知道沒有回溯應作出,因爲&&
的,?)是否足夠用於尾遞歸?
public bool DeleteLocation(Guid locationId)
{
return ((_mLocationDal.Save(locationRes) != null) &&
locationRes.ChildrenIds.Aggregate(true,
(succeededSoFar, next) => succeededSoFar &&
DeleteLocation(next)));
}
這可能是一個有趣的問題,但所有的答案到目前爲止似乎是一個事實,固定的*編譯器*不執行這些操作,而是CLR的JIT編譯器。如果這就是你問的問題,你應該考慮編輯這個問題來刪除對編譯器的錯誤引用。 – 2011-12-17 11:34:29