我刚刚在 .NET 基础库的反射器中找到了这段代码......
if (this._PasswordStrengthRegularExpression != null)
{
this._PasswordStrengthRegularExpression = this._PasswordStrengthRegularExpression.Trim();
if (this._PasswordStrengthRegularExpression.Length == 0)
{
goto Label_016C;
}
try
{
new Regex(this._PasswordStrengthRegularExpression);
goto Label_016C;
}
catch (ArgumentException exception)
{
throw new ProviderException(exception.Message, exception);
}
}
this._PasswordStrengthRegularExpression = string.Empty;
Label_016C:
... //Other stuff
我已经听过所有“你不应该使用 goto 因为害怕永远流放地狱”的说法。我一直非常重视 MS 编码员,虽然我可能不同意他们的所有决定,但我始终尊重他们的推理。
那么-我缺少这样的代码有充分的理由吗?这段代码摘录是由一个无能的开发人员拼凑而成的吗?还是 .NET 反射器返回不准确的代码?
我希望有一个很好的理由,而我只是盲目地想念它。
感谢大家的投入