黑马程序员技术交流社区

标题: 关于占位符与参数之间关系的疑问 [打印本页]

作者: 马文浩    时间: 2013-4-3 18:13
标题: 关于占位符与参数之间关系的疑问
            string name = "张三";
            int age = 28;
            decimal salary = 7600.33m;
            Console.WriteLine("我的名字叫{0},我今年{1}了,我的工资是{2}元",name,age,salary);
            Console.ReadKey();
请大神们就上面这段代码谈谈对下面这段话的理解
“ Console.WriteLine();有多个参数时,输出都是第一个参数中的内容,从第二个参数开始都是用来替换第一个参数中占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符”

我正在看苏坤老师的基础视频,笔记我都一字不落的记下来了,但是有些内容我还是百思不得其解,特向各位大神请教。
不胜感激。
作者: 曾玉锋    时间: 2013-4-3 19:06
Console.WriteLine("...{0}...{1}...{n}",参数1,参数2,参数(n+1));
Console.WriteLine(string format,params object[] objs);这个方法在内部调用了string.Format()方法,参数format和 object数组作为string.Format()的参数
而string.Format()对传进去的参数处理以后返回一个字符串供Console.WriteLine()使用。


希望对你有所帮助。
作者: 马文浩    时间: 2013-4-3 20:27
曾玉锋 发表于 2013-4-3 19:06
Console.WriteLine("...{0}...{1}...{n}",参数1,参数2,参数(n+1));
Console.WriteLine(string format,par ...

太专业了,看不懂。。。。不过还是很感谢你。
我把视频里那一段反反复复的看,感觉还是模糊的很。
打算等到了传智播客基础班后亲自问老师。
作者: DWC_5101    时间: 2013-4-3 21:20
拿下面这句代码说吧:
Console.WriteLine("我的名字叫{0},我今年{1}了,我的工资是{2}元",name,age,salary);

分以下四步理解:
1、第一个参数中,有{0}、{1}、{2},这是告诉编译器有三个占位符
2、编译器从第二个参数开始,找这三个占位符的内容
3、从第二个参数开始算占位符的内容,name对应{0},age对应{1},salary对应{2}
4、分别将实际内容替换掉占位符
作者: 马文浩    时间: 2013-4-3 23:03
DWC_5101 发表于 2013-4-3 21:20
拿下面这句代码说吧:
Console.WriteLine("我的名字叫{0},我今年{1}了,我的工资是{2}元",name,age,salary); ...

明白了,谢谢啦。
作者: 严夫    时间: 2013-4-8 11:12
  Console.WriteLine("{0},{1},{2}",代替{0},代替{1},代替{2}); 这不是很好理解吗?




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