>            If Not Cust.Remarks Is Nothing Or 
> Cust.Remarks.Count = 0 Then
>                 grdRemarks.DataSource = Cust.Remarks
>                 grdRemarks.DataBind()
>             Else
>                 Visible = False
>             End If
> 
> und vermute mal das der code knallt wenn  Cust.Remarks 
> nothing ist nun meine
> frage wie loest man sowas am saubersten.

Ok... Mal schauen ... Operator-Reihenfolge:

If (Not (Cust.Remarks Is Nothing)) Or (Cust.Remarks.Count = 0) Then

In der Tat... Wenn Cust.Remarks Nothing ist, dann gibt es kein
Cust.Remarks.Count ...

Allerdings kommt mir der Ausdruck falsch vor...
Not bindet stärker als Or... Aber gemeint ist doch bestimmt das hier:

If Not (Cust.Remarks Is Nothing Or Cust.Remarks.Count = 0) Then

Also ein Databinding wenn Cust.Remarks weder Nothing noch leer(Count=0)
ist...

Dsa Problem bleibt aber weiterhin...

Lösen kann man sowas mit short-circuiting-Operatoren...
Für Or heisst der OrElse, also richtig:

If Not (Cust.Remarks Is Nothing OrElse Cust.Remarks.Count = 0) Then

Short-circuiting bedeutet, dass nur soviel vom Ausdruck ausgewertet wird,
wie nötig ist, um eine Aussage über das Ergebnis zu treffen.

A Or B wertet also A und B aus,
A OrElse B wertet B nur aus, wenn A false ergeben hat, da falls A = true ist
das Ergebnis des ganzen Ausdruckes schon als true feststeht.

Der short-circuiting Operator zu And heisst AndAlso. Er wertet den rechten
Operanten nur aus, wenn der linke true ergibt.

In C# übrigens sind & und | das normale And/Or und &&, || die
short-circuiting-Varianten.


Gruss,

Claudius

_______________________________________________
Asp.net Mailingliste, Postings senden an:
Asp.net@glengamoi.com
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an