Operatoren (Visual C# Express)
Aktualisiert: November 2007
Die Syntax der Operatoren in C# ähnelt derjenigen der anderen Programmiersprachen der C-Familie. Operatoren werden verwendet, um Berechnungen auszuführen, Variablen Werte zuzuweisen, auf Gleichheit oder Ungleichheit zu prüfen und sonstige Operationen durchzuführen.
Die folgenden Abschnitte enthalten einige der in C# am häufigsten verwendeten Operatoren. Die vollständige Liste aller Operatoren finden Sie unter C#-Operatoren.
Zuweisungs- und Gleichheitsoperatoren
In C# hat der Gleichheitszeichenoperator (=) dieselbe Funktionalität wie in C and C++:
Operator |
Zweck |
---|---|
= |
Weist einen Wert zu. |
== |
Prüft auf Gleichheit. |
Beispiel
int x = 100;
if (x == 100)
{
System.Console.WriteLine("X is equal to 100");
}
Mathematische und logische Operatoren
Nachfolgend eine Liste der grundlegenden mathematischen Operatoren, aufgelistet nach ihrer Rangfolge. Verwenden Sie Klammern, um eine andere Reihenfolge zu erzwingen.
Operator |
Zweck |
---|---|
*, /, % |
Multiplikation, Division, Modulo |
+, - |
Addition, Subtraktion |
& |
Logisches AND |
^ |
Logisches XOR |
| |
Logisches OR |
Beispiel
int x = 1;
int y = x + 10 * 100; // multiplication first y = 1001
int z = (x + 10) * 100; // addition first z = 1100
Inkrement- und Dekrementoperatoren
C/C++-Formatverknüpfungen werden unterstützt, einschließlich Postfix- und Präfixoperatoren, wie in folgenden Beispielen dargestellt:
Operator |
Zweck |
---|---|
v++ |
Inkrementieren der Variablen v um 1. |
v+=n |
Inkrementieren der Variablen v um n. |
v*=n |
Multiplizieren der Variablen v mit n. |
v-=n |
n von der Variablen v subtrahieren. |
Beispiel
int x = 0;
int y = x++; // x is 1, y is 0
System.Console.WriteLine("{0} {1}", x, y);
int z = ++x; // x is 2, z is 2
System.Console.WriteLine("{0} {1}", x, z);
Relationale Operatoren.
Die folgenden Operatoren vergleichen zwei Werte und geben ein boolesches Ergebnis zurück:
Operator |
Zweck |
---|---|
== |
Prüfungen auf Gleichheit. |
!= |
Prüfungen auf Ungleichheit. |
> |
Größer als |
< |
Kleiner als |
>= |
Größer oder gleich |
<= |
Kleiner oder gleich |
Beispiel
int x = int.Parse(System.Console.ReadLine());
if (x > 100)
{
System.Console.WriteLine("X is greater than 100");
}
Logische Bedingungsoperatoren
Die logischen Operatoren werden verwendet, um durch das Kombinieren von mehreren Klauseln flexiblere Bedingungsanweisungen zu erstellen:
Operator |
Zweck |
---|---|
&& |
Bedingtes UND. |
|| |
Bedingtes ODER. |
! |
Bedingtes NICHT. |
Beispiel
int x = int.Parse(System.Console.ReadLine());
if ((x >= 100) && (x <= 200))
{
System.Console.WriteLine("X is between 100 and 200");
}
Höhere mathematische Operatoren
Für höhere mathematische Operationen wie Trigonometrie verwenden Sie die Frameworks-Klasse Math. Im folgenden Beispiel werden die Sin-Methode (Sinus) und die Sqrt-Methode (Quadratwurzel) sowie die Konstante PI verwendet:
Beispiel
double d = System.Math.Sin(System.Math.PI/2);
double e = System.Math.Sqrt(144);
Überladen von Operatoren
C# unterstützt das Überladen von Operatoren. Dadurch können Sie Operatoren neu definieren, sodass sie sich für eigene Datentypen besser eignen. Im folgenden Beispiel wird eine Struktur erstellt, die einen einzelnen Wochentag in einem durch eine Enumeration definierten Variablentyp speichert. Weitere Informationen finden Sie unter Strukturen (Visual C# Express) und unter Enumerationen (Visual C# Express). Der Additionsoperator wurde überladen, um zu ermöglichen, dass eine ganzzahlige Anzahl von Tagen zum aktuellen Tag hinzugefügt wird und einen neuen Wochentag als Ergebnis liefert. Wenn also ein Tag zu Sonntag addiert wird, wird Montag zurückgegeben.
Beispiel
using System;
// Define an DayOfWeek data type
enum DayOfWeek { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
// Define a struct to store the methods and operators
struct Day
{
private DayOfWeek day;
// The constructor for the struct
public Day(DayOfWeek initialDay)
{
day = initialDay;
}
// The overloaded + operator
public static Day operator +(Day lhs, int rhs)
{
int intDay = (int)lhs.day;
return new Day((DayOfWeek)((intDay + rhs) % 7));
}
// An overloaded ToString method
public override string ToString()
{
return day.ToString();
}
}
public class Program
{
static void Main()
{
// Create a new Days object called "today"
Day today = new Day(DayOfWeek.Sunday);
Console.WriteLine(today.ToString());
today = today + 1;
Console.WriteLine(today.ToString());
today = today + 14;
Console.WriteLine(today.ToString());
}
}