Operador = (Referencia de C#)= Operator (C# Reference)

El operador de asignación = asigna el valor de su operando de la derecha a una variable, una propiedad o un elemento de indizador proporcionado por el operando de la izquierda.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. El resultado de una expresión de asignación es el valor asignado al operando izquierdo.The result of an assignment expression is the value assigned to the left-hand operand. El tipo del operando de la derecha debe ser el mismo que el del operando de la izquierda o debe poder convertirse implícitamente en él.The type of the right-hand operand must be the same as the type of the left-hand operand or implicitly convertible to it.

El operador de asignación es asociativo a la derecha, es decir, una expresión de la formaThe assignment operator is right-associative, that is, an expression of the form

a = b = c

se evalúa comois evaluated as

a = (b = c)

El ejemplo siguiente muestra el uso del operador de asignación para asignar valores a una variable local, una propiedad y un elemento de indizador:The following example demonstrates the usage of the assignment operator to assign values to a local variable, a property, and an indexer element:

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

Operador de asignación refref assignment operator

A partir C# 7.3, puede usar el operador de asignación ref = ref para reasignar una variable local de tipo ref o local de tipo ref readonly.Beginning with C# 7.3, you can use the ref assignment operator = ref to reassign a ref local or ref readonly local variable. En el siguiente ejemplo se muestra el uso del operador de asignación ref: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

En el caso del operador de asignación ref, el tipo del operando de la izquierda y el operando de la derecha debe ser los mismos.In the case of the ref assignment operator, the type of the left operand and the right operand must be the same.

Para más información, vea la nota de propuesta de características.For more information, see the feature proposal note.

Posibilidad de sobrecarga del operadorOperator overloadability

Un tipo definido por el usuario no puede sobrecargar el operador de asignación.A user-defined type cannot overload the assignment operator. Sin embargo, un tipo definido por el usuario puede definir una conversión implícita a otro tipo.However, a user-defined type can define an implicit conversion to another type. De este modo, el valor de un tipo definido por el usuario puede asignarse a una variable, una propiedad o un elemento de indizador de otro tipo.That way, the value of a user-defined type can be assigned to a variable, a property, or an indexer element of another type. Para más información, consulte el artículo sobre la palabra clave implicit.For more information, see the implicit keyword article.

Especificación del lenguaje C#C# language specification

Para más información, vea la sección Asignación simple de la Especificación del lenguaje C#.For more information, see the Simple assignment section of the C# language specification.

Vea tambiénSee also