IIf()

03/01/2009 - 16:18 von Thomas Kehl | Report spam
Hallo zusammen.

Ich habe eine Frage zur Funktion IIf()
Ich habe folgenden Code:

IIf(activity.Project is nothing, 0, activity.Project.ID)

Nun stelle ich fest, dass, auch wenn activity.Project nothing ist, der Teil
activity.Project.ID ausgewertet wird, und somit eine Exception auftritt.
Kann das jemand erklàren, warum das so ist - bzw. ist es richtig, dass IIf()
immer beide Ausdrücke auswertet und dann halt "nur" dein einen oder anderen
zurückgibt?

Besten Dank für eure Info.

Herzliche Grüsse, Thomas
 

Lesen sie die antworten

#1 Martin Honnen
03/01/2009 - 16:33 | Warnen spam
Thomas Kehl wrote:

Ich habe eine Frage zur Funktion IIf()
Ich habe folgenden Code:

IIf(activity.Project is nothing, 0, activity.Project.ID)

Nun stelle ich fest, dass, auch wenn activity.Project nothing ist, der Teil
activity.Project.ID ausgewertet wird, und somit eine Exception auftritt.
Kann das jemand erklàren, warum das so ist - bzw. ist es richtig, dass IIf()
immer beide Ausdrücke auswertet und dann halt "nur" dein einen oder anderen
zurückgibt?



Doku http://msdn.microsoft.com/en-us/lib...dhh0d.aspx sagt:
"Because the IIf function does not use short-circuit evaluation, it
always evaluates all three of its arguments. The If operator evaluates
its first argument and, depending on the value of the first argument,
either the second or the third argument."
Also werden bei IIf in der Tat alle drei Argumente ausgewertet. Bei If
hingegen nicht.

Du willst also eher
If(activity.Project is nothing, 0, activity.Project.ID)


Martin Honnen MVP XML
http://JavaScript.FAQTs.com/

Ähnliche fragen