我遇到的问题是短路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
第三个参数)然后我想我会选择另一条路线。