.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)插字符串
當(dāng)所有字符串都是常量時,在.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微服務(wù)架構(gòu)CI/CD鏡像自動分發(fā)
這篇文章介紹了.NET微服務(wù)架構(gòu)CI/CD實現(xiàn)鏡像自動分發(fā)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01使用asp.net的pageDataSource中時索引問題解決方法
當(dāng)前頁面在數(shù)據(jù)的除第一頁的任何一個頁面時,重新條件查詢并且是新條件的總頁數(shù)小于剛才查詢得到的頁碼時,就會出現(xiàn)“索引 20 不是為負(fù)數(shù),就是大于行數(shù)”的類似的錯誤2013-04-04SQL為查詢的結(jié)果加上序號(ROW_NUMBER) 合并多個查詢結(jié)果
SQL為查詢的結(jié)果加上序號(ROW_NUMBER) 合并多個查詢結(jié)果2010-03-03Asp.Net Core輕量級Aop解決方案:AspectCore
這篇文章主要介紹了Asp.Net Core輕量級Aop解決方案:AspectCore,需要的朋友可以參考下2017-06-06ASP.NET內(nèi)置對象之Application對象
Application對象是HttpApplicationState類的一個實例,它可以產(chǎn)生一個所有Web應(yīng)用程序都可以存取的變量,這個變量的可以存取范圍涵蓋全部使用者,也就是說只要正在使用這個網(wǎng)頁的程序都可以存取這個變量。2008-09-09