Entwickler-Ecke

C# - Die Sprache - or-operator in C#


jasocul - Fr 24.02.06 09:55
Titel: or-operator in C#
Wie setze ich folgenden Delphi-NET-Source in C# um:

Delphi-Quelltext
1:
if ((e.State or DrawItemState.Selected) = e.State) ...                    

Dies geht nicht:

C#-Quelltext
1:
if ((e.State || DrawItemState.Selected) = e.State) ...                    

Ich bekomme:
Zitat:
error CS0019: Operator '||' cannot be applied to operands of type 'System.Windows.Forms.DrawItemState' and 'System.Windows.Forms.DrawItemState'

Ich kann zwar die Fehlermeldung interpetieren, aber ich weiß nicht, wie ich es denn machen muss. Ich habe keine Doku dazu gefunden (seit gesterm Mittag bin ich am suchen).


Robert_G - Fr 24.02.06 10:54

Es gibt den logischen Operator ||, den wirst du zum Bleistift in if clauses verwenden.
Es gibt aber auch den binären operator | welcher ebenfalls ein "Oder" ist, nur halt binär.

Letzterer wäre für dich interessant.


jasocul - Fr 24.02.06 11:11

Danke.
Ich frage mich nur, warum ich das nirgendwo in der Doku gefunden habe. :gruebel: Sonst hätte ich hier ja nicht so blöd fragen müssen. War mir fast peinlich. Irgendwie musste das ja gehen. Wahrscheinlich hätte ich nicht bei C# sondern bei C++ nachsehen müssen. :motz:


Robert_G - Fr 24.02.06 11:28

Zeigt Matthias' schnieke dynamic Help nicht den richtigen Help topic, wenn dein Cursor über | bzw. || steht?
Und zeigt die Doku zum || oder | Operator nicht den Unterschied zum jeweiligen logischen/binären Gegenstück an?

Soll keine Schelte sein, just curious...


jasocul - Fr 24.02.06 12:07

Fasse ich auch nicht als Schelte auf, sondern als Anregung. Die dynamische Hilfe zeigt es bei mir nicht, aber die Suchfunktion hätte geholfen. :oops:
Bisher hatte ich die Hilfe allerdings nur für .NET-Schwierigkeiten genutzt und nicht für C#.


Robert_G - Fr 24.02.06 12:47

user profile iconjasocul hat folgendes geschrieben:
Fasse ich auch nicht als Schelte auf, sondern als Anregung.
Vllt fasst es Matthias ja auch nicht als Schelte sonder als Anregung auf. :mrgreen:


Delete - Sa 25.02.06 15:45

Das ist ein Parserproblem. Der Parser reagiert bspw auch nicht bei try und Co., wohl aber bei this. Der CSharp-Parser gehört Daniel Grunwald und ist mir eine Nummer zu hoch :oops:, ich zapfe ihn bloß an und lass die dynamische Hilfe anzeigen, was ihr "gesagt" wird. ;)