首页 / C# / C#4中的过载分辨率和可选参数
C#4中的过载分辨率和可选参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#4中的过载分辨率和可选参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1561字,纯文字阅读大概需要3分钟。
内容图文
![C#4中的过载分辨率和可选参数](/upload/InfoBanner/zyjiaocheng/775/b4e3b3e5e0c347c8a178c5d93744fa4f.jpg)
我正在使用一些代码,它有一个函数TraceWrite的七个重载:
void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, string Data = ""); void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, bool LogToFileOnly, string Data = ""); void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, string PieceID, string Data = ""); void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, LogWindowCommandENUM LogWindowCommand, string Data = ""); void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, bool UserMessage, int UserMessagePercent, string Data = ""); void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, string PieceID, LogWindowCommandENUM LogWindowCommand, string Data = ""); void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, LogWindowCommandENUM LogWindowCommand, bool UserMessage, int UserMessagePercent, string Data = "");
(所有公共静态,命名空间噪音在上面和之后都没有.)
那么,有了这样的背景:
1)在其他地方,我用四个参数调用TraceWrite:string,LogLevelENUM,string,bool,我得到以下错误:
error CS1502: The best overloaded method match for 'TraceWrite(string, LogLevelENUM, string, string)' has some invalid arguments error CS1503: Argument '4': cannot convert from 'bool' to 'string'
为什么这个调用不能解决第二个重载? (TraceWrite(string,LogLevelENUM,string,bool,string =“”))
2)如果我用字符串,LogLevelENUM,字符串,字符串调用TraceWrite,将调用哪个重载?第一个还是第三个?为什么?
解决方法:
编译器将选择重载#1,因为它与参数数量和签名完全匹配.
内容总结
以上是互联网集市为您收集整理的C#4中的过载分辨率和可选参数全部内容,希望文章能够帮你解决C#4中的过载分辨率和可选参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。