.NET?6新特性試用之常量內(nèi)插字符串
前言:
編寫代碼時,我們常常需要組合字符串。
如下代碼:
string scheme = "https";
string host = "xxx.com";
int port = 8080;
Console.WriteLine(string.Format("{0}://{1}:{2}", scheme, host, port));但是,這種替換方式容易會產(chǎn)生錯誤,比如寫錯參數(shù)順序,索引數(shù)字無效等。
因此,推薦的寫法是使用字符串內(nèi)插,代碼如下:
Console.WriteLine($"{scheme}://{host}:{port}");這樣更容易閱讀,而變量的值會被直接替換到字符串中。
常量內(nèi)插字符串
當所有字符串都是常量時,在.NET 6之前,是不能使用字符串內(nèi)插的,只是使用??+??拼接字符串:

而在.NET 6,我們已經(jīng)可以對常量使用內(nèi)插字符串,代碼如下:
const string FirstName = "My";
const string LastName = "IO";
const string FullName = $"{FirstName} {LastName}";需要注意的是,內(nèi)插字符串中的常量不能是數(shù)字:

這是因為,數(shù)字常量轉(zhuǎn)換為字符串是有區(qū)域性區(qū)分的,而區(qū)域性只有在運行時才能獲得:
Console.WriteLine($"{1234.56}"); // output: 1234.56
Thread.CurrentThread.CurrentCulture= new CultureInfo("es-ES");
Console.WriteLine($"{1234.56}"); // output: 1234,56結(jié)論:
對于Attribute使用參數(shù)時,常量內(nèi)插字符串將非常方便,如下代碼:
public class xxClass
{
? ? [Obsolete($"Use {nameof(NewMethod)} instead")]
? ? public void OldMethod() { }
? ? public void NewMethod() { }
}這樣,我們可以不用在Message中硬編碼方法名稱了。
? 到此這篇關(guān)于.NET 6新特性試用之常量內(nèi)插字符串的文章就介紹到這了,更多相關(guān).NET 6常量內(nèi)插字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
.Net?Core應(yīng)用增強型跨平臺串口類庫CustomSerialPort()詳解
本文詳細講解了.Net?Core應(yīng)用增強型跨平臺串口類庫CustomSerialPort(),文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01
ASP.NET Core Web資源打包與壓縮技術(shù)介紹
這篇文章介紹了ASP.NET Core Web資源打包與壓縮技術(shù),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
詳細說明asp.net中datareader 和 dataset 的區(qū)別
asp.net中datareader 和 dataset的區(qū)別主要是在獲取數(shù)據(jù)的機制和獲取數(shù)據(jù)的方式方面,下面我們來看教程2013-08-08
解決Asp.net Mvc返回JsonResult中DateTime類型數(shù)據(jù)格式問題的方法
這篇文章主要介紹了解決Asp.net Mvc返回JsonResult中DateTime類型數(shù)據(jù)格式問題的方法,需要的朋友可以參考下2016-06-06
C#調(diào)用動態(tài)unlha32.dll解壓Lha后綴的打包文件分享
這篇文章介紹了,C#調(diào)用動態(tài)unlha32.dll解壓Lha后綴的打包文件,有需要的朋友可以參考一下2013-09-09

