A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 荣右铭 中级黑马   /  2013-10-9 17:03  /  2192 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 荣右铭 于 2013-10-9 20:30 编辑

我们都知道console.writeline()方法是一个重载方法,但同时它又能接受N个参数并输出

console.writeline("{0}{1}{3}{4}...{N}“,变量1,变量2,变量3...变量N" );
请问这种形式的输出是如何通过重载实现的,或其背后是否有其他特殊的机制?

重载.jpg (60.78 KB, 下载次数: 43)

重载.jpg

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

5 个回复

倒序浏览
public static void WriteLine(string format, params object[] arg);
有这个方法可知 params object[]是任何类型可变参数数组,会将你以后输入的任何值都转化成object类型的数组

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

回复 使用道具 举报 1 0
这个就是一个方法的重载了吧,如果你的后面变量超过4个的话,就使用的是
public static void WriteLine(string format, params object[] arg);方法,也就是说你后面跟的变量已经给看成一个数组了哦,至于具体实现的方法。。你可以用反编译软件看一看的哦。

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

回复 使用道具 举报 1 0
这个,基础视频里有讲过,用修饰符params 修饰参数,允许传递多个参数
回复 使用道具 举报
本帖最后由 面朝大海,春暖 于 2013-10-9 18:47 编辑

好比调用自定义函数一样,你定义了什么类型,多少个参数,调用的时候就必须一致,这是通过参数类型或参数个数实现重载的。。
回复 使用道具 举报
方法重载具体规范
一.方法名一定要相同。
二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
1.如果参数个数不同,就不管它的参数类型了!
2.如果参数个数相同,那么参数的类型或者参数的顺序必须不同。
三.方法的返回类型、修饰符可以相同,也可不同。
Console.WriteLine 表示向控制台写入字符串后换行。
Console.WriteLine("xx{0}xx{1},{2},{3}xx",strName[0],strName[1],strName
[2],strName3]);
这种方式中包含两个参数:“格式字符串”和变量列表。“xx{0}xx{1},{2},{3}xx”这是格式字符串,{0}、{1}、{2}、{3}叫做占位符,代表后面依次排列的变量表,0对应变量列表的第一个变量,1对应变量列表的第2个变量,依次类推,完成输出。
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马