Recientemente tuve un error extraño cuando estaba concatenando una cadena con un int?
y luego agregué otra cadena después de eso.precedencia de operador extraño con ?? (operador coalescente nulo)
Mi código era básicamente el equivalente a esto:
int? x=10;
string s = "foo" + x ?? 0 + "bar";
Sorprendentemente esto ejecutará y compilar sin advertencias o errores de tipo incompatibles, al igual que esta:
int? x=10;
string s = "foo" + x ?? "0" + "bar";
Y entonces esto da lugar a un error de incompatibilidad de tipo inesperado:
int? x=10;
string s = "foo" + x ?? 0 + 12;
Como será esto simple r ejemplo:
int? x=10;
string s = "foo" + x ?? 0;
¿Alguien puede explicar cómo esto me funciona?
Un problema relacionado: http://stackoverflow.com/questions/3218140/null-coalescing-operator-and-lambda-expression/3218268#3218268 –
Y aquí hay un enlace que no hace que mi respuesta brille ... http://stackoverflow.com/questions/3218140/null-coalescing-operator-and-lambda-expression – ChaosPandion