<节>
<代码类=" hljs bash "> string 小姐;=,
string 小姐:=,@;
输出:
sss 代码>
<代码类=癶ljs cs”>, j =,,,,
代码>
这里不仅要知道可以这么用,更要知道为什么可以这么用:模板字符串或者叫插值字符串只是字符串。Format的一个语法糖,编译器会这样解析:
s1 = ;
s2 = .Format(, s1);
注意:
s1 = ;
Console.WriteLine();
Console.WriteLine(}}");
返回值一定是一个新的字符串,因为String类没有提供任何可以改变其内容的方法
i = ;
j = i.Insert(, );
输出:
i
j hello123
我们都知道在进行复杂的字符串操作的时候就要用到StringBuilder类,我们不太注意到的是:
StringBuilder工作方式高效但是功能受限,它只能完成文本中的 替换 追加 删除的工作。
下面是StringBuilder提供的主要方法:
StringBuilder sb = StringBuilder();
StringBuilder sb1 = StringBuilder();
StringBuilder sb2 = StringBuilder(, );
格式化的语法
在模板字符串中要用冒号分割变量与格式化字符串
time = DateTime.Now;
Console.WriteLine(");
Console.WriteLine(time.ToString());
内置的格式化
格式字符串结果n2,440.012 有逗号分隔,有小数点e2.44e+003 指数表示法x9ad 十六进制c$2,440.002 货币关于内置的格式化,如果大量经常使用的话,推荐点击这里下载微软提供的工具来帮助格式化。
自定义格式化
除了使用内置的格式化,我们还能自定义格式化字符串和格式化的结果,方法就是实现IFormattable接口,下面举个例子
定义:
:
{
FirstName { ; ; }
LastName { ; ; }
()
{
FirstName + + LastName;
}
( format) => ToString(format, );
( format, IFormatProvider formatProvider)
{
(format)
{
:
ToString();
:
FirstName;
:
LastName;
:
FormatException(");
}
}
}
使用:
Student stu = Student { FirstName = , LastName = };
Console.WriteLine(stu.ToString());