Информация об изменениях

Сообщение С# long to float/double от 11.04.2019 12:27

Изменено 11.04.2019 12:27 okon

С# long to float/double
Не совсем выглядит логичным почему выбирается метод с float параметром,
а также в случае если заменяем Test(double) на Test(decimal) то компилятор не может выбрать между двумя методами и ошибка компиляции.
В случае с параметром Test(double) ошибки компиляции нету.

void static Test()
{
   Test(1L);
}

void Test(double value)
{
   Console.WriteLine($"double = {value}");
}

void Test(float value)
{
   Console.WriteLine($"float = {value}");
}



void static Test()
{
   Test(1L);
}

void Test(decimal value)
{
   Console.WriteLine($"double = {value}");
}

void Test(float value)
{
   Console.WriteLine($"float = {value}");
}
С# long to float/double
Не совсем выглядит логичным почему выбирается метод с float параметром,
а также в случае если заменяем Test(double) на Test(decimal) то компилятор не может выбрать между двумя методами и ошибка компиляции.
В случае с параметром Test(double) ошибки компиляции нету.

void static Test()
{
   Test(1L);
}

void static Test(double value)
{
   Console.WriteLine($"double = {value}");
}

void static Test(float value)
{
   Console.WriteLine($"float = {value}");
}



void static Test()
{
   Test(1L);
}

void static Test(decimal value)
{
   Console.WriteLine($"double = {value}");
}

void static Test(float value)
{
   Console.WriteLine($"float = {value}");
}