baihongyu.com
博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一道简单而又容易出错的题目
阅读量:
7088 次
发布时间:
2019-06-28
本文共 726 字,大约阅读时间需要 2 分钟。
闲话少说,先看代码:
class
clsArray2D
...{
private
void
Print(
object
obj)
...{
Console.WriteLine(
"object"
);
}
private
void
Print(
string
str)
...{
Console.WriteLine(
"string"
);
}
/**
<summary>
///
应用程序的主入口点。
/// </summary>
[STAThread]
static
void
Main(
string
[] args)
...{
clsArray2D array=
new
clsArray2D();
array.Print(
null
);
Console.ReadLine();
//暂时不关闭窗口
}
}
猜最后输出会是什么?"object"?"string"?
如果你的答案是“string”,那么恭喜你答对了。
想知道原因么?请待我试为你解答,当然也不一定正确,只是个人观点。
因为string是object的子类,所以等于private void print(Istring str)重载了private void print(object obj),所以调用总是先匹配private void print(string str),至于null它是任意类型,所以他既可以是string又可以是object,但因为前面的原因,null按照string处理。
不知道解答是否让大家满意,欢迎共同探讨。
本文转自周金桥51CTO博客,原文链接:http://blog.51cto.com/zhoufoxcn/167089
,如需转载请自行联系原作者
你可能感兴趣的文章
Windows下查看文件MD5值
查看>>
Spring 异步消息
查看>>
杭电2017
查看>>
ElasticSearch5.* 删除index/type 数据restful API调用
查看>>
建立共享存储实验记录
查看>>
笨方法学python VII
查看>>
myeclipse控制台不显示tomcat信息
查看>>
cent os 下载地址
查看>>
SyntaxNet 中文模型的使用
查看>>
对libevent+多线程服务器模型的C++封装类
查看>>
iOS本地数据保存
查看>>
windows下mysql忘记root密码的解决办法
查看>>
[蛋疼]猜测下一波浮点数指数位与小数位的分配
查看>>
cgic程序的编写遇到的问题
查看>>
haproxy url load balancing (url 负载均衡)
查看>>
Radix Tree in Linux Kernel
查看>>
PHP常见错误收集
查看>>
一对多的两个表,查询主表的信息和主表在子表中的记录条数
查看>>
从程序员入门到“第一个项目”的一些事
查看>>
转-Pentaho技术白皮书中文版(三)--构建新组件
查看>>