c# - 为什么 C# 使用 double 类型而不是 int 类型的函数?
问题描述
问题是,当我运行此代码时:
class Animal
{
public void WriteMessage(int i)
{
Console.WriteLine("Message from Animal");
}
}
class Bull : Animal
{
public void WriteMessage(double p)
{
Console.WriteLine("Message from Bull");
}
}
static void Main(string[] args)
{
int i = 5;
Bull b = new Bull();
b.WriteMessage(i);
Console.ReadLine();
}
然后我得到输出:(
Message from Bull
为什么?)
但是,当我在这样的函数中交换参数时:
class Animal
{
public void WriteMessage(double i)
{
Console.WriteLine("Message from Animal");
}
}
class Bull : Animal
{
public void WriteMessage(int p)
{
Console.WriteLine("Message from Bull");
}
}
并将传递的类型更改为双精度:
static void Main(string[] args)
{
double i = 5;
Bull b = new Bull();
b.WriteMessage(i);
Console.ReadLine();
}
然后输出是:
Message from Animal
Visual Studio 显示,此函数有两个重载,一个是 int,第二个是 double。仍然当代码运行时,在这两种情况下,具有双类型参数的函数都在运行。
我很高兴知道它为什么会这样工作。谢谢。
解决方案
推荐阅读
- java - 处理:如何使一个函数找到我的数组的二次公式的结果?
- javascript - Updating chart.js chart with dataset of different size
- hpc - LSF 将文件移动到创建的输出目录
- excel - Divide sheets among diferent people
- ansible - ansible 中 flush_handlers 的替代方案
- php - Wordpress - Save Contact Form 7 fields to the database as separate columns
- angular - Angular reactive form validation with dynamically named controls
- elasticsearch - 是否可以在 Kibana 的开发工具中编写聚合查询然后存储结果?
- node.js - Multple SQL queries in Node with oracledb
- android - 在 RecyclerView 中从最后一项导航到第一项