c#關鍵字是伴隨這.net 3.5以後,伴隨著匿名函式、linq而來, 由編譯器幫我們推斷具體的型別。總體來說,當乙個變數是區域性變數(不包括類級別的變數),並且在宣告的時候初始化,是使用var關鍵字的前提。具體什麼時候使用,什麼時候不使用,以下是個人淺見。
1、宣告匿名函式時使用var關鍵字
var temp = new ;
2、linq投影出匿名函式結果時使用var關鍵字
var temp = from p in products
where p.name =="sth"
select new ;3、 型別很明確時使用var關鍵字
var string = "" ;
var result = new list();以上,可以很明顯從等號右邊推斷出型別,可以考慮使用var關鍵字。
4、型別不明確時慎用var關鍵字
var result = productrepository.getproducts();
以上,如果使用var關鍵字,在可讀性上就差了一點。
什麼時候加volatiel關鍵字
1.volatiel只保證可見性,不保證原子性。2.涉及多執行緒修改的共享變數,那麼修改這個變數的 區域需要保證同步。3.乙個函式內,例如有5句 其中2 4是對共享變數的修改,如果第一句有使用共享變數,那麼共享變數的值可能已經被載入到某執行緒的棧記憶體,而另外執行緒對共享變數已經做了修改,如果不加v...
C 低頻關鍵字params用法,什麼時候用?
c 中有乙個關鍵字params,它相對於一些主要關鍵字來說,還算是較為低頻的,但也會用到。我們可以了解和學習下。關於中文程式設計,這是為了給您看起來方便,您實際編碼時不宜使用中文。一 定義及約束 params關鍵字的作用在於可以讓方法引數的數目可變。params的引數型別必須是一維陣列。一旦在方法加...
什麼時候才使用volatile關鍵字?
相比起synchronized關鍵字,volatile關鍵字也是能夠解決共享變數的記憶體可見性問題,而且還是非阻塞的,效能也要比synchronized關鍵字要好,因為synchronized關鍵字是獨佔鎖,乙個執行緒獲取到鎖後,其他執行緒就只能阻塞了,這就會產生執行緒的上下文切換和重新排程的開銷,...