Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# Frage zu (and)Operatoren in C# (https://www.delphipraxis.net/65838-frage-zu-operatoren-c.html)

Heffalump 21. Mär 2006 10:28


Frage zu (and)Operatoren in C#
 
Hallo zusammen,

folgende Zeile funktioniert in Delphi:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Self.Button1.Enabled := (TreeView1.Selected <> nil) and (TreeView1.Selected.Count = 0);
end;
Wie ist das in C# zu schreiben. Gekommen bin ich bis dahin:
Code:
private void timer_Tick(object sender, EventArgs e)
        {
            this.ButtonFolderDelete.Enabled = (this.folderView.SelectedNode != null);
        }
Danach verliesen sie mich dann.

Khabarakh 21. Mär 2006 10:35

Re: Frage zu (and)Operatoren in C#
 
Code:
private void timer_Tick(object sender, EventArgs e)
{
     this.ButtonFolderDelete.Enabled = this.folderView.SelectedNode != null && folderView.SelectedNode.Nodes.Count /* ? */ == 0;
}
Dank der im Vergleich zu Delphi IMHO viel sinnvolleren Operatorrangfolge sparst du sogar zwei Klammern ;) .

Heffalump 21. Mär 2006 10:41

Re: Frage zu (and)Operatoren in C#
 
Danke.

DerDan 21. Mär 2006 11:15

Re: Frage zu (and)Operatoren in C#
 
Zitat:

Zitat von Khabarakh
Code:
private void timer_Tick(object sender, EventArgs e)
{
     this.ButtonFolderDelete.Enabled = this.folderView.SelectedNode != null && folderView.SelectedNode.Nodes.Count /* ? */ == 0;
}
Dank der im Vergleich zu Delphi IMHO viel sinnvolleren Operatorrangfolge sparst du sogar zwei Klammern ;) .

Die Klammern kosten nichts ...

... sie wegzulassen kostet ...

... Lesbarkeit.

Ich nehm gerne Klammern in if abfragen auch wenn man sie nicht braucht.


und so hat wohl auch damals der Mr. Wirth gedacht


mfg

Daniel

Khabarakh 21. Mär 2006 11:48

Re: Frage zu (and)Operatoren in C#
 
Da der Ausdruck ziemlich lang ist, würde ich sowieso einen Zeilenumbruch einfügen und dann stören die Klammern nur noch.
Klammern zu Übersichtlichkeit einzufügen ist eine Sache, das geht auch in C#. Klammern allerdings durch eine dämliche Rangfolge aufzuzwingen, ist eine andere. Es ist einfach nur logisch, dass and als logischer Operator auf den unteren Plätzen rangiert (wobei wir bei Delphi wieder das Problem haben, dass and zugleich der binäre Operator ist, aber auch der ist in C# dem Äquivalenzzeichen untergeordnet).


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz