.NET 6新特性试用之常量内插字符串
前言:
编写代码时,我们常常需要组合字符串。
如下代码:
string scheme = "https";
string host = "xxx.com";
int port = 8080;
Console.WriteLine(string.Format("{0}://{1}:{2}", scheme, host, port));但是,这种替换方式容易会产生错误,比如写错参数顺序,索引数字无效等。
因此,推荐的写法是使用字符串内插,代码如下:
Console.WriteLine($"{scheme}://{host}:{port}");这样更容易阅读,而变量的值会被直接替换到字符串中。
常量内插字符串
当所有字符串都是常量时,在.NET 6之前,是不能使用字符串内插的,只是使用+拼接字符串:

而在.NET 6,我们已经可以对常量使用内插字符串,代码如下:
const string FirstName = "My";
const string LastName = "IO";
const string FullName = $"{FirstName} {LastName}";需要注意的是,内插字符串中的常量不能是数字:

这是因为,数字常量转换为字符串是有区域性区分的,而区域性只有在运行时才能获得:
Console.WriteLine($"{1234.56}"); // output: 1234.56
Thread.CurrentThread.CurrentCulture= new CultureInfo("es-ES");
Console.WriteLine($"{1234.56}"); // output: 1234,56结论:
对于Attribute使用参数时,常量内插字符串将非常方便,如下代码:
public class xxClass
{
[Obsolete($"Use {nameof(NewMethod)} instead")]
public void OldMethod() { }
public void NewMethod() { }
}这样,我们可以不用在Message中硬编码方法名称了。
到此这篇关于.NET 6新特性试用之常量内插字符串的文章就介绍到这了,更多相关.NET 6常量内插字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
.Net Core应用增强型跨平台串口类库CustomSerialPort()详解
本文详细讲解了.Net Core应用增强型跨平台串口类库CustomSerialPort(),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-01-01
详细说明asp.net中datareader 和 dataset 的区别
asp.net中datareader 和 dataset的区别主要是在获取数据的机制和获取数据的方式方面,下面我们来看教程2013-08-08
解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
这篇文章主要介绍了解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法,需要的朋友可以参考下2016-06-06
C#调用动态unlha32.dll解压Lha后缀的打包文件分享
这篇文章介绍了,C#调用动态unlha32.dll解压Lha后缀的打包文件,有需要的朋友可以参考一下2013-09-09


最新评论