=-Operator (C#-Referenz)= operator (C# reference)

Der Zuweisungsoperator = weist den Wert seines rechtsseitigen Operanden einer Variablen, einer Eigenschaft oder einem, durch seinen linksseitigen Operanden angegebenen Indexer-Element zu.The assignment operator = assigns the value of its right-hand operand to a variable, a property, or an indexer element given by its left-hand operand. Das Ergebnis eines Zuweisungsausdrucks ist der Wert, der dem linksseitigen Operanden zugewiesen wird.The result of an assignment expression is the value assigned to the left-hand operand. Der Typ des rechtsseitigen Operanden muss mit dem Typ des linksseitigen Operanden übereinstimmen oder implizit in ihn konvertierbar sein.The type of the right-hand operand must be the same as the type of the left-hand operand or implicitly convertible to it.

Der Zuweisungsoperator rechtsassoziativ, d.h. ein Ausdruck der FormThe assignment operator is right-associative, that is, an expression of the form

a = b = c

wird als ausgewertet,is evaluated as

a = (b = c)

Das folgende Beispiel zeigt die Verwendung des Zuweisungsoperators mit einer lokalen Variablen, einer Eigenschaft und einem Indexerelement als linksseitigem Operanden:The following example demonstrates the usage of the assignment operator with a local variable, a property, and an indexer element as its left-hand operand:

var numbers = new List<double>() { 1.0, 2.0, 3.0 };

Console.WriteLine(numbers.Capacity);
numbers.Capacity = 100;
Console.WriteLine(numbers.Capacity);
// Output:
// 4
// 100

int newFirstElement;
double originalFirstElement = numbers[0];
newFirstElement = 5;
numbers[0] = newFirstElement;
Console.WriteLine(originalFirstElement);
Console.WriteLine(numbers[0]);
// Output:
// 1
// 5

ref-Zuweisungsoperatorref assignment operator

Ab C# 7.3 können Sie mit dem ref-Zuweisungsoperator = ref eine ref local- oder ref readonly local-Variable neu zuweisen.Beginning with C# 7.3, you can use the ref assignment operator = ref to reassign a ref local or ref readonly local variable. Im folgenden Beispiel wird die Verwendung des ref-Zuweisungsoperators veranschaulicht:The following example demonstrates the usage of the ref assignment operator:

void Display(double[] s) => Console.WriteLine(string.Join(" ", s));

double[] arr = { 0.0, 0.0, 0.0 };
Display(arr);

ref double arrayElement = ref arr[0];
arrayElement = 3.0;
Display(arr);

arrayElement = ref arr[arr.Length - 1];
arrayElement = 5.0;
Display(arr);
// Output:
// 0 0 0
// 3 0 0
// 3 0 5

Im Fall des ref-Zuweisungsoperators muss der Typ beider Operanden identisch sein.In the case of the ref assignment operator, the type of both its operands must be the same.

Weitere Informationen finden Sie unter Hinweis zum Featurevorschlag.For more information, see the feature proposal note.

VerbundzuweisungCompound assignment

Bei einem binären Operator op entspricht ein Verbundzuweisungsausdruck der FormFor a binary operator op, a compound assignment expression of the form

x op= y

für die folgende Syntax:is equivalent to

x = x op y

außer dass x nur einmal überprüft wird.except that x is only evaluated once.

Verbundzuweisungen werden von arithmetischen, logischen booleschen und bitweisen logischen und Verschiebungs--Operatoren unterstützt.Compound assignment is supported by arithmetic, Boolean logical, and bitwise logical and shift operators.

OperatorüberladbarkeitOperator overloadability

Ein benutzerdefinierter Typ kann den Zuweisungsoperator nicht überladen.A user-defined type cannot overload the assignment operator. Ein benutzerdefinierter Typ kann jedoch eine implizite Konvertierung in einen anderen Typ definieren.However, a user-defined type can define an implicit conversion to another type. Auf diese Weise kann der Wert eines benutzerdefinierten Typs einer Variablen, einer Eigenschaft oder einem Indexerelement eines anderen Typs zugewiesen werden.That way, the value of a user-defined type can be assigned to a variable, a property, or an indexer element of another type. Weitere Informationen finden Sie unter Benutzerdefinierte Konvertierungsoperatoren.For more information, see User-defined conversion operators.

C#-SprachspezifikationC# language specification

Weitere Informationen finden Sie im Abschnitt Zuweisungsoperatoren der C#-Sprachspezifikation.For more information, see the Assignment operators section of the C# language specification.

Siehe auchSee also