Gibts es sowa wie "A = x < y ? x : y;"
-
Gibts das?

-
Ja.
-
und wie ist die syntax in VB.net dafür?
Wenn ich schreiben "Dim i as Integer = 4>5 ? 4 : 5" geht nix;)
-
Oh, da ich nix von VB gelesen habe, bin ich davon ausgegangen, dass es sich um C# handelt.
-
BorisDieKlinge schrieb:
und wie ist die syntax in VB.net dafür?
Wenn ich schreiben "Dim i as Integer = 4>5 ? 4 : 5" geht nix;)
Klar geht das nicht, VB kann das nicht. Schreibe es doch einfach aus:
dim i as integer if (4>5) then i = 4 else i = 5 end if
-
oh man wie unelegant;) hehe...
jepp so mach ich das auch derweil...
-
Klar ist des unelegant, aber VB ist nun mal so. Es gibt ja nicht mal die Increment und Decrement Funktionen like C:
x-- x++also darfste mit solchen Kontrukten erst gar nicht rechnen.

-
Es gibt in VB noch IIF(Bedingung, Wahr-Ergebnis, Falsch-Ergebnis), das abhängig von der Bedingung eines der Ergebnisse zurückgibt. Hat aber den Nachteil dass immer die Bedingung und beide Ergebnisse ausgewertet werden, unabhängig davon ob die Bedingung wahr oder falsch ist. Ein weiterer Nachteil ist dass der Return-Typ Object ist, was sich aber leicht umschiffen lässt:
Public Shared Function GIf(Of Type)(cond As Boolean, lhs As Type, rhs As Type) As Type Return (Type) IIF(cond, lhs, rhs) End Function@SeboStone:
Immerhin hat MS der Sprache schon += usw. spendiert. In einer der nächsten Versionen soll VB wohl auch ein "true ternary" If(cond, lhs, rhs) erhalten.
-
LordJaxom schrieb:
Es gibt in VB noch IIF(Bedingung, Wahr-Ergebnis, Falsch-Ergebnis)
Ah, das kannte ich noch nicht, gar nicht schlecht.
LordJaxom schrieb:
Immerhin hat MS der Sprache schon += usw. spendiert.
Jep, das nutze ich auch exessiv, wenn ich in VB entwickeln muss.

Sebo
-
Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
VB ist doch eine .net-Sprache. Da kannst Du doch eine C++-Klasse dafür einbinden
.