如果是运算符,短路和空对象

时间:2013-10-25 17:46:17

标签: .net vb.net short-circuiting

我遇到的问题是短路If operator似乎没有短路。也许你们都可以帮我理解我做错了什么。或许我的短路概念是错误的。

见下文:

row.Item("v_total") = selectedForecastRow(0).Item("f_total") - _
           If(useZero, 0, CDbl(selectedActualRow(0).Item("a_total").ToString()))

在此示例中,selectedActualRow为null。但是,useZero是正确的,因此我认为If会将useZero评估为真并返回0,而根本不评估selectedActualRow

我试图使用If来避免编写一堆If-Else语句,并使我的代码更加简洁明了,但如果If无法执行此评估(由于null第三个参数)然后我想我会选择另一条路线。

0 个答案:

没有答案