Существуют 4 перегруженных функции :
static void Foo(object x,object y)
{
Console.WriteLine("object object");
}
static void Foo(object x,string y)
{
Console.WriteLine("object string");
}
static void Foo(string x,object y)
{
Console.WriteLine("string object");
}
static void Foo(string x,string y)
{
Console.WriteLine("string string");
}
Метод Main():
static void Main(string[] args)
{
object x = "X";
dynamic y = "Y";
Foo(x,y);
}
Компилятор:
object string
Но почему? Если переменная y трактуется компилятором как object? Следовательно, должен быть вызван метод с сигнатурой параметров object,object
Сборка персонального компьютера от Artline: умный выбор для современных пользователей