黑马程序员技术交流社区

标题: 关于console .writeline()的小问题 [打印本页]

作者: 荣右铭    时间: 2013-10-9 17:03
标题: 关于console .writeline()的小问题
本帖最后由 荣右铭 于 2013-10-9 20:30 编辑

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

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

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

重载.jpg

作者: 夢醒了⊙﹏⊙b心    时间: 2013-10-9 17:23
public static void WriteLine(string format, params object[] arg);
有这个方法可知 params object[]是任何类型可变参数数组,会将你以后输入的任何值都转化成object类型的数组
作者: 七里香    时间: 2013-10-9 17:33
这个就是一个方法的重载了吧,如果你的后面变量超过4个的话,就使用的是
public static void WriteLine(string format, params object[] arg);方法,也就是说你后面跟的变量已经给看成一个数组了哦,至于具体实现的方法。。你可以用反编译软件看一看的哦。
作者: 黑色海    时间: 2013-10-9 18:03
这个,基础视频里有讲过,用修饰符params 修饰参数,允许传递多个参数
作者: 面朝大海,春暖    时间: 2013-10-9 18:44
本帖最后由 面朝大海,春暖 于 2013-10-9 18:47 编辑

好比调用自定义函数一样,你定义了什么类型,多少个参数,调用的时候就必须一致,这是通过参数类型或参数个数实现重载的。。
作者: ╰┄轩、辕_ヤ    时间: 2013-10-9 18:55
方法重载具体规范
一.方法名一定要相同。
二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
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个变量,依次类推,完成输出。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2