黑马程序员技术交流社区

标题: 占位符 [打印本页]

作者: 天行    时间: 2013-3-17 11:57
标题: 占位符
占位符是怎么工作的 console.writeline("{0},{1},{3}",str1,str2,str3);为什么报错

作者: 曾玉锋    时间: 2013-3-17 14:18
首先,占位符的数字是从0开始并且连续的整数。
其次,占位符必须写在""里面
Console类的带参数的Write方法重载
Console.WriteLine("{0}{1}{2}",arg1,arg2,arg3);
方法体里面是调用Out.Write()方法的重载来实现的
而在Out.Write()的方法体内是调用string.Format()方法的重载来实现的

下面是Console.Write()方法中的一种重载方法
[HostProtection(SecurityAction.LinkDemand, UI=true)]
public static void Write(string format, object arg0, object arg1, object arg2)
{
    Out.Write(format, arg0, arg1, arg2);
}

这是Out.Write()方法的一种重载方法
public virtual void Write(string format, object arg0, object arg1, object arg2)
{
    this.Write(string.Format(this.FormatProvider, format, new object[] { arg0, arg1, arg2 }));
}





往下就设计到底层代码的调用....有兴趣的话可以用神奇Reflector查看实现代码,不过private修饰的方法看不了
作者: 杨硕    时间: 2013-5-2 17:07
视频里讲的很清楚
占位符{}可以少,但是后面的变量一定不能少于占位符
你的代码里str3代表的是{2},{3}没有所对应的变量,所以报错。。。




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