Poniższy kod rzuca "niejednoznaczne wywołania mecz" w czasie kompilacji:Niejednoznaczne wywołanie zamieszania
class ABC{}
class DEF{}
class Program
{
static void Main(string[] args)
{
Debug.WriteLine(func(null));
}
static string func(ABC abc)
{
return "";
}
static string func(DEF def)
{
return "";
}
}
Ale następujący kod kompiluje i działa poprawnie:
static void Main(string[] args)
{
Debug.WriteLine(func(null));
}
static string func(int? abc)
{
return "function a";
}
static string func(float? def)
{
return "function b";
}
Wyprowadzanie
function a
W jaki sposób C# wie, jaką funkcję wybrać w drugim przykładzie?
' pływak f = 1; // działa int i = 1.0f; // nie robi praca ' Ok to ma sens – Isaac
ładnie wyjaśnione. –