您可能不知道 C#字符串的表达方式有一种较为简洁的表达方式,即, 内插方式,这种方式表达起来更加简单直观,使C#用起来更像高级语言。今天按照常用的方法举几个简单的实例表述一下。
1、如何创建内插字符串
C#的内插语法包含了每个内插字符串表达式必须具备的两个元素:
(1)字符串文本以 $ 字符开头,后接左双引号字符。注意, $ 符号和引号字符之间不能有空格。
(2)一个或多个内插表达式 。 左大括号和右大括号({ 和 })指示内插表达式。 可将任何返回值的表达式置于大括号内。
2、HelloWorld举例
我们要显示一段字符一般是如下描述的。
var name = "火星";
var date = DateTime.Now;
MessageBox.Show("Hello," + name + "!\ntime:"+ date);
下面使用内插的方式描述,会不会有点高级呢?特别是变量多的时候,可以少写很多引号和加号了。
var name = "火星";
var date = DateTime.Now;
MessageBox.Show($"Hello, {name}!\ntime:{date}");
显示结果如下
3、格式化举例
在变量值之后添加冒号":",可以格式化数据,当然要对应的数据类型才可以使用,比如:时间类型就有大量的格式标准,如:d、t、m、o、y、ff、dddd、MM …
格式化例一
string name = "月亮";
DateTime date = DateTime.Now;
MessageBox.Show($"Hello, {name}!\ntime: {date:d}");
格式化例二
var p = (target:"地球", population:800000000);
var date = DateTime.Now;
MessageBox.Show($"{date:M}\nname:{p.target}\n人口:{p.population:e}");
4、直接运算举例
在{}中也可以直接运算或使用方法,如下面实例,注意int不能使用“++”或“- -”。
int number = 10;
string str = "ABCDEF";
MessageBox.Show($"number:{number*10+1}\r\nstr:{str.Replace("CD","_")}\n");
5、内插使用的优缺点
- 优点:表达简洁,转化字符串的类型不限制,还可以避免转化前为null的异常问题。
- 缺点:表达式不能换行处理,必须在一行中进行编辑,如果一行太长,建议将内插和“+”连接组合起来使用。