黑马程序员技术交流社区
标题:
简单而比较有意思的题
[打印本页]
作者:
§風過無痕§
时间:
2013-8-9 22:09
标题:
简单而比较有意思的题
本帖最后由 §風過無痕§ 于 2013-8-10 15:17 编辑
今天逛论坛的时候偶遇此题 觉得很有意思{:soso_e113:}!特转过来与各位马友一起探讨探讨{:soso_e151:}
气温高天热但麻烦各位稍安勿躁 {:soso_e156:} 马上为各位献上代码:
namespace 简单而又意义的题
{
class Program
{
static void Main(string[] args)
{
Program array = new Program ();
array.Print(null);
Console.ReadLine();//暂时不关闭窗
}
private void Print(object obj)
{
Console.WriteLine("object");
}
private void Print(string str)
{
Console.WriteLine("string");
}
}
}
复制代码
答案:是多少呐???请各位马友来揭晓
为什么是这个答案呐!{:soso_e132:}这是为什么呢{:soso_e132:}{:soso_e132:}
作者:
咖喱猫
时间:
2013-8-9 23:19
答案是:string;
个人认为:null是一个引用类型的默认值、应该就属于引用类型;
string也是应用类型,所以 array.Print(null);就等同于传了一个string类型的。
所以调用了 private void Print(string str)
{
Console.WriteLine("string");
}
作者:
lvjayj
时间:
2013-8-10 00:14
因为string继承于object,string可隐式转换为object,所以会调用string。
这很好理解,调用时会找类型最精确的调用,不然有些类库的方法重载就有问题了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2