1

我遇到了短路If操作员似乎没有短路的问题。也许你们都可以帮助我理解我做错了什么。或者也许我对短路的概念是不正确的。

见下文:

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第三个参数),那么我想我会选择另一条路线。

4

0 回答 0