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