C# 中 “$” 符號的作用以及用法詳解
前言:$
是c# 6.0 的語言特性,功能類似string.format()
,更方便的地方在于不要像format
一樣使用索引,可以直接使用變量、表達(dá)式或者方法的執(zhí)行。
一、C#中$
的作用
談及這個$
,其實它是C#6.0語法中模板字符串的一種寫法,什么是模版字符串?還記得你們用過的格式化字符串嗎?string.Format()
這個方法,是最常用的方法之一。
那$
又是什么呢?它是為了替代string.format()
的,原先賦值需要占位符和變量,當(dāng)需要拼接多個變量會造成語句過長等不易理解問題。
$
是為了替代string.format()
,可以把字符串中的C#變量{}
包含起來達(dá)到識別C#變量的目的$"{id}"
;也支持表達(dá)式,使用$"{(你的表達(dá)式)}"
;或者方法的執(zhí)行,使用$"{(方法)}"
。
二、C#中$
的用法
C# 中$
符號的作用是C#6.0中新出現(xiàn)的一個特性,也即是字符串的拼接優(yōu)化。
語法格式:$"string {參數(shù)}"
解釋:以$
符號開頭開始字符串,其中以{}
來進(jìn)行傳參,可以多個參數(shù)累加。
例如:var results = $"Hello {Name}";
三、關(guān)于$
的示例講解
var str = string.Format("我的名字叫{1},我今年{1}歲。", "張三", 23); Console.WriteLine(str);
這是我們使用string.format()
的寫法,下來我們使用$
改寫一下。
var str = $"我的名字叫{"張三"},我今年{23}歲。"; Console.WriteLine(str);
通過上面這個案例,我們發(fā)現(xiàn),現(xiàn)在使用$
代碼簡潔,可讀性強。
可能有些朋友覺得效果不太明顯,那么請看下面這個案例:
var name = "張三"; var age = 23; var sex = "男"; var message = string.Format("我叫{0},我的年齡為{1},我的性別是{2}", name, age, sex); var show = $"我叫{name},我的年齡為{age},我的性別是{sex}"; Console.WriteLine(message); Console.WriteLine(show);
如果還感受不到,那么請你試想一下:如果我們要操作的數(shù)據(jù)很多,假設(shè)它是一個多條的SQL語句,那么在長篇字符串中定位索引,那是不是很累啊!縱使你寫對了索引(沒寫對還得一個個檢查、修改),好不容易完工了。但下一個需求讓你加兩個參數(shù),你的索引位置又得變,還得在萬碼叢中查找你原來索引在哪里的,是不是很惡心?
哈哈,不用沮喪,此時C#6.0模版字符串就可以閃亮登場啦!
怎么用?總結(jié)一下,就是在字符串的雙引號前面加一個 $ 符號,在需要使用變量的地方用{變量}就可以了。這個在我們上面的案例中,也有體現(xiàn)。
四、關(guān)于$
的補充知識
正如我們上面所說,{變量}
表示在字符串中輸出變量的值,當(dāng)然{}
中間也可以是一個表達(dá)式或者方法的執(zhí)行。
$"我的姓名是{GetName()}"; $"name的類型是{name.GetType()}";
如上,這樣就很方便,帥氣了!那么變量和索引可以混用嗎?當(dāng)然也是可以的,如下:
var name = "張三"; var age = 23; var sex = "男"; var show = string.Format($"我是{name},今年{age},家住在{{0}}", sex); Console.WriteLine(show);
要注意的是需要用兩次大括號
{{}}
將索引包含起來,也就是這樣的形式,{{索引}}
。因為一次是輸出表達(dá)式,兩次就轉(zhuǎn)義成普通的占位符了,這點一定要注意!
總結(jié)
到此這篇關(guān)于C# 中 “$” 符號的作用以及用法的文章就介紹到這了,更多相關(guān)C# $ 符號作用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c# Invoke和BeginInvoke 區(qū)別分析
這篇文章主要介紹了c# Invoke和BeginInvoke 區(qū)別分析,需要的朋友可以參考下2014-10-10