我在采访中遇到了一个与C#OOPS概念有关的问题。
public class Program
{
public static float GetValue(float a)
{
Console.WriteLine("Float");
return a;
}
public static double GetValue(double d)
{
Console.WriteLine("Double");
return d;
}
}
当我执行Program.GetValue(1)
时,它将向控制台输出Float
。为什么选择“浮动”而不是“双倍”?
答案 0 :(得分:1)
好吧
让我们将代码重写为类似的情况:
public class Program
{
public static int GetValue(int i)
{
Console.WriteLine("Int");
return i;
}
public static long GetValue(long n)
{
Console.WriteLine("Long");
return n;
}
}
现在您期望以下代码输出什么?
byte b = 1;
Program.GetValue(b);
我很确定您期望Int
。然后,为什么在代码中打印Float
时感到惊讶?它打印Float
的原因与我的示例打印Int
的原因完全相同。仔细考虑一下,您可能会找出原因。