sharp residuo programacion operadores operador logicos jerarquia ejemplos c# .net nullable lifted-operators

residuo - operadores logicos c# ejemplos



¿Qué son los operadores levantados? (1)

Los operadores levantados son operadores que trabajan sobre tipos anulables "levantando" los operadores que ya existen en la forma no admitible. Entonces, por ejemplo, si lo haces:

int? x = 10; int? y = 10; int? z = x + y;

Ese operador "+" se levanta. En realidad no existe en Nullable<int> pero el compilador C # actúa como si lo hiciera, generando código para hacer lo correcto. (En la mayoría de los casos, se trata de verificar si alguno de los operandos es nulo; si es así, el resultado es nulo. De lo contrario, desenvuelva ambos operandos en sus valores no admitibles, utilice el operador normal y luego envuelva el resultado en un valor de nullable. Sin embargo, hay algunos casos especiales en torno a las comparaciones).

Consulte la sección 6.4.2 (operadores de conversión levantados) y 7.3.7 (operadores levantados) de la especificación C # para obtener más información.

Estaba mirando este artículo y estoy luchando para seguir el ejemplo de VB.NET que explica los operadores levantados. No parece haber un ejemplo o tutorial equivalente de C #. No tengo mucha experiencia con la sobrecarga de operadores en general, por lo que tratar de llegar a un acuerdo con el equivalente de VB.NET mientras se lee sobre tipos anulables probablemente no sea el mejor lugar para comenzar ...

¿Alguien podría proporcionar una explicación de los operadores levantados y cómo los usan los tipos anulables? ¿Simplemente significa que el tipo anulable no sobrecarga a los operadores y usará los operadores del tipo subyacente que representa?

No parece haber mucha información sobre SO sobre operadores levantados, así que con suerte esto también puede ayudar a otros.