Was ist schneller?
-
Hi
Es geht darum, dass ich z.B. ein Formular hab, in dem es eine CheckBox und 2 Textfelder hab. Wenn die Checkbox angekreuzt ist, sollen die 2 Textfelder disabled werden.
Was von den folgenden 3 Möglichkeiten ist die schnellste?a)
if(CheckBox.Checked)
{
TextBox1.Enabled = false; TextBox2.Enabled = false;
}
else
{
TextBox1.Enabled = true; TextBox2.Enabled = true;
}[/code]
Vorteil: Es muss nur 1 mal geprüft werden, keine zusätzliche Variable benötigt
Nachteil: langer Quellcode
b)
TextBox1.Enabled = !CheckBox.Checked;
TextBox2.Enabled = !CheckBox.Checked;[/code]
Vorteil: kurzer Quellcode, keine zusätzliche Variable
Nachteil: 2 mal die selbe Prüfung
c)
bool check = !CheckBox.Checked;
TextBox1.Enabled = check;
TextBox2.Enabled = check;[/code]
Vorteil: kurzer Quellcode, nur eine Prüfung
Nachteil: zusätzliche Variable
Welche Möglichkeit findet ihr am besten, und welche würdet ihr hernehmen?
Ach ja, der Beispiel-Code ist C#, aber wird in anderen Sprachen ähnlich sein....
MfG
Neescher
[ Dieser Beitrag wurde am 03.06.2003 um 11:49 Uhr von Neescher editiert. ]
[ Dieser Beitrag wurde am 03.06.2003 um 11:50 Uhr von Neescher editiert. ]
-
Ich würd mal sagen aus b) und c) macht der Compiler hoffentlich das gleiche (der boolsche Wert bleibt nur in einem Register der CPU) und die Variante wird auch schneller sein, da ja kein Vergleich nötig ist. Das '!' invertiert ja nur den boolschen Wert.
-
Kannst du mir mal erklären, inwiefern Geschwindigkeit hier überhaupt eine Rolle spielt?
EDIT: Ich würde Variante c nehmen. ...ist vermutlich auch die "schnellste".
[ Dieser Beitrag wurde am 03.06.2003 um 11:57 Uhr von Gregor editiert. ]
-
Original erstellt von Gregor:
Kannst du mir mal erklären, inwiefern Geschwindigkeit hier überhaupt eine Rolle spielt?Ja *zustimm*
-
ich würd es so machen:
TextBox1.Enabled = TextBox2.Enabled = !CheckBox.Checked;