C# 中 String.Format在程序设计时与拼接字符串的优劣有哪些?

看了国外源代码,涉及到拼接字符串,都用了String.Format方法,这样做的好处是什么,劣势呢?请教CSDN各位前辈。

https://msdn.microsoft.com/zh-cn/library/system.string.format%28v=vs.110%29.aspx

 str="hello:"str1+"and"+str2+" or "+str3

str=string.Formate("hello: {0} and {1} or {2}",str1,str2,str3);

对比看出,string.formate提高了代码可读性,有利于维护

而且用 string.formate 对数据进行格式化也相当方便:

格式化的时候不需要指定是什么数据类型


String.Format("{0,-10:C}", 126347.89m);         
int nID = 1;
string str = "select * from "+ strTable +" where ID ="+nID.ToString();//nID需要转化成string
string.Format("select * from {0} where ID={1}",strTable ,nID);//nID在这里不需要转换

一方面是更具有可读性,另一方面是有一些特殊的处理
比如日期的 string.Format("{0:yyMMdd}",DateTime.Now)
比如数字的string.Format("{0:D}",100);