Duplicar posible:
C#: Passing null to overloaded method - which method is called?CLR pregunta. ¿Por qué la sobrecarga de métodos en C# decide que null es una cadena?
Aquí es un caso de prueba
object a = null;
var b = Convert.ToString (null);
var c = Convert.ToString (a);
string d = Convert.ToString (null); // CLR chooses Convert.ToString(string value)
string e = Convert.ToString (a); // CLR chooses Convert.ToString(object value)
La cuestión es por qué CLR decide que se interpreta como nula cadena en primer caso? Parece que esta pregunta ya fue respondida here
Aquí hay otro caso similar. Ninguno de estos IFS se activan
object x = null;
if (x is object)
{
Console.Write ("x is object");
}
if (x is string)
{
Console.Write ("x is string");
}
if (null is object)
{
Console.Write ("null is object");
}
if (null is string)
{
Console.Write ("null is string");
}
Posible duplicado: http://stackoverflow.com/questions/719546/c-pasar-null-to-overloaded-method-which-method-is-llamado – CMS
Supongo que debemos esperar hasta que Jon Skeet se despierte y nos ilumine en este caso. –
Él ya lo tiene, en el enlace que publicó CMS. –