$符号的作用相当于对String.format()的简化
例如我们需要输出一段包含name与age的字符串:
using System;
class Program
{
static void Main(string[] args)
{
string name = "liu";
int age = 10;
//复杂麻烦的写法
string str1 = "my name is " + name + ",my age is " + age + ".";
//使用Format的写法
string str2 = string.Format("my name is {0},my age is {1}.", name, age);
//使用$语法糖的写法
string str3 = $"my name is {name},my age is {age}.";
//控制台的三个输出都相同
Console.WriteLine(str1);
Console.WriteLine(str2);
Console.WriteLine(str3);
}
}
——由代码显然可见第一种写法复杂麻烦,使用起来是不方便的
——使用Format格式化这种写法,需要自己在字符串中写占位符(标记),在后面跟上参数。但是如果要格式化的参数比较多,写起来就比较麻烦
——使用$语法糖的写法可读性高,代码简洁。
应用示例2:
读取引用类库中的方法个数
using System;
using System.Linq;
using System.Reflection;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
foreach (var r in Assembly.GetEntryAssembly().GetReferencedAssemblies())
{
var a = Assembly.Load(new AssemblyName(r.FullName));
int methodCount = 0;
foreach (var t in a.DefinedTypes)
{
methodCount += t.GetMethods().Count();
}
Console.WriteLine($"{a.DefinedTypes.Count():N0} types "+$"with {methodCount:N0} methods in {r.Name} assembly.");
}
}
}
}
输出结果: