博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
null值作为参数的重载问题
阅读量:6352 次
发布时间:2019-06-22

本文共 566 字,大约阅读时间需要 1 分钟。

class Program

{
static void Main(string[] args)
{
string str = test(null);
}

private static string test(object obj)
{
return "object";
}

private static string test(string str)

{
return "string";
}
}

str 的结果显示为 string;

重载解析过程是以两阶段运行的。第一阶段选取所有可获得并且可应用的方法或构造器。第二阶段在第一阶段选取的方法或构造器中选取最精确的一个。如果一个方法或构造器可以接受传递给另一个方法或构造器的任何参数,那么我们就说第一个方法比第二个方法缺乏精确性;

因为所有的string都是object类型,但所有的object并不都是string类型,所以选择test(string str),要想用一个null参数来调用 test(Object),这样写代码:test((Object)null)。

 

在做API的时候,

1.尽量避免使用重载;

2.弱重载,明确的区分开各种参数类型

 

转载于:https://www.cnblogs.com/zxyl/archive/2013/02/17/2914113.html

你可能感兴趣的文章
Ubuntu下安装遨游浏览器
查看>>
自定义Linux service脚本
查看>>
微信开发之发红包
查看>>
一键lnmp脚本&&php扩展模块安装(适用于CENTOS6.X系列)
查看>>
二维观察---文字的裁剪
查看>>
矩形覆盖
查看>>
ICMP
查看>>
界面设计模式(第2版)(全彩)
查看>>
解决VMware Workstation错误:未能锁定文件
查看>>
CentOS6 手动编译升级 gcc
查看>>
memcached的安装与开启脚本
查看>>
zabbix 邮件报警 -- sendmail
查看>>
JavaScript异步编程
查看>>
tcpdump用法小记
查看>>
MySQL基础安全注意细节
查看>>
Oracle随机函数—dbms_random
查看>>
pvr 批量转换
查看>>
linux命令basename使用方法
查看>>
windows下开发库路径解决方案
查看>>
linux迁移mysql数据目录
查看>>