C# 新特性,新功能,新語法

Attribute

MADN的定義爲:公共語言運行時允許添加類似關鍵字的描述聲明,叫做attributes, 它對程序中的元素進行標註,如類型、字段、方法和屬性等。Attributes和Microsoft .NET Framework文件的元數據保存在一起,可以用來向運行時描述你的代碼,或者在程序運行的時候影響應用程序的行爲。

我們簡單的總結爲:定製特性attribute,本質上是一個類,其爲目標元素提供關聯附加信息,並在運行期以反射的方式來獲取附加信息。具體的特性實現方法,在接下來的討論中繼續深入。

我理解的定製特性,就是爲目標元素,可以是數據集、模塊、類、屬性、方法、甚至函數參數等加入附加信息,類似於註釋,但是可以在運行期以反射的方式獲得。定製特性主要應用在序列化、編譯器指令、設計模式等方面。

attibute實例,是在編譯期進行初始化,而不是運行期

定製特性常用於在運行期獲得代碼註釋信息,以附加信息來優化調試。

 

"$"作用和用法

C#中$的用法:"$"是在C#6.0出現的一個新特性,其作用相當於對String.format()的簡化。


string.format()需要自己在字符串中寫佔位符,在後面跟上參數。如果要格式化的參數比較多,寫起來就比較噁心。 而用$符號,寫法就簡潔多了,我們可以直接在字符串的相應位置協商自己想要替換的參數就好了。
 

 string name = "Lixi";
 int age = 22;
 string str = string.Format("my name is{0}, I'm {1} years old",name,age);
 string str2 = $"my name is{name}, I'm {age} years old";

全局作用符::


比如說你在全局定義了一個變量str,然後在函數裏面又定義了這個str名字的變量的,這個時候你要是在函數裏面直接寫str,那麼就是訪問的函數內部的變量的。無法訪問外部變量的。
這是正常的現象的。但是如果你想訪問外部變量的話,那麼就可以使用::str來訪問的。就不會是訪問內部變量了。


@ 讓轉移字符"\"保持原意,不要轉義,

如一個地址字符串  :string path="c:\abc\";
默認的"\"是作爲轉義來使用的,而不是一個真的斜槓字符串
所以這個地方要取到地址,正確的寫法應該是:
string path=@"c:\abc\"; //這裏的@讓斜槓保持原意,不要轉義
或者
string path="c:\\abc\\"; //不用@ 斜槓表示轉義,所以要多加個斜槓

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章