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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天行 中级黑马   /  2013-3-17 11:57  /  2248 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

占位符是怎么工作的 console.writeline("{0},{1},{3}",str1,str2,str3);为什么报错

1 个回复

倒序浏览
首先,占位符的数字是从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修饰的方法看不了
回复 使用道具 举报
视频里讲的很清楚
占位符{}可以少,但是后面的变量一定不能少于占位符
你的代码里str3代表的是{2},{3}没有所对应的变量,所以报错。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马