这些天我遇到了许多奇怪的情况:-)
我在 ASP.Net 应用程序中测试了以下两个代码。当字符串值为空时,代码 1 抛出异常(如预期)而代码 2 不抛出异常(与预期相反)。
- 为什么“<strong>EVAL”在这种情况下不抛出异常?
- EVAL 会一直这样工作(即“没有例外”)还是只是运气?
- 是否有任何 MSDN 参考表明“Eval”返回空字符串?
//代码 1:导致异常
string test = Convert.ToString(subscriber.EncryptedSSN).Substring(0, Convert.ToString(subscriber.EncryptedSSN).Length >= 5 ? 5 : Convert.ToString(subscriber.EncryptedSSN).Length);
//代码2:不抛出异常
<%# Convert.ToString(Eval("EncryptedSSN")).Substring(0, Convert.ToString(Eval("EncryptedSSN")).Length >= 5 ? 5 : Convert.ToString(Eval("EncryptedSSN")).Length) %>
参考资料: