class person
{
int Age = 25;
public void sayhello()
{
string maessage = "我的年龄是{0}";
Console.WriteLine(maessage);
Console.WriteLine(maessage,Age);
Console.WriteLine("{0}{1}",maessage,Age);
}
static void Main()
{
person A = new person();
A.sayhello();
Console.ReadKey();
}
}
占位符到底是怎么占位的呢?我只知道Console.WriteLine("{0}{1}",maessage,Age); {0}{1}所占的位置就是后面的紧跟着的变量;但是"我的年龄是{0}";这里的{0}又是怎么占位的呢,我认为它就是maessage的具体内容,
{
int Age = 25;
public void sayhello()
{
string maessage = "我的年龄是{0}";
Console.WriteLine(maessage);
Console.WriteLine(maessage,Age);
Console.WriteLine("{0}{1}",maessage,Age);
}
static void Main()
{
person A = new person();
A.sayhello();
Console.ReadKey();
}
}
占位符到底是怎么占位的呢?我只知道Console.WriteLine("{0}{1}",maessage,Age); {0}{1}所占的位置就是后面的紧跟着的变量;但是"我的年龄是{0}";这里的{0}又是怎么占位的呢,我认为它就是maessage的具体内容,
它就是maessage的具体内容
string message = string.Format("我的年龄是{0}", age);
string.Format("我的年龄是{0}", 变量或值);
Console.WriteLine("我的年龄是{0}",Age);
的处理方式是一样的,都是调用这个函数public static void WriteLine(String format, params Object[] arg)
将字符串里的{n}直接替换成后面参数的值,WriteLine里是调用String.Format(...)实现的,感兴趣的话可以看一下.net源码,可以发现实现方式就是直接替换{n}。Console.WriteLine("我的年龄是{0}");
不带参数的话,调用的是不同的WriteLine重载,public static void WriteLine(Object value)
处理方式不一样,这里面调用value.toString(),直接将{0}作为字符串的一部分。
Console.Write("可存在占位符","占位符参数1",占位符参数2:string.Format("可包含占位符","字符串格式化占位符参数"));够清楚了吧,呵呵
maessage参数是存在占位符的,因此可以使用字符串格式化方法