c#中var的用法


一、VAR 是3.5新出的一個定義變量類型,其實也就是弱化類型的定義,VAR可代替任何類型,編譯器會根據上下文來判斷你到底是想用什么類型的。




二、至於什么情況下用到VAR 我想就是你無法確定自己將用的是什么類型,就可以使用VAR 類似 OBJECT,但是效率比OBJECT高點。



三、使用var定義變量時有以下四個特點:

  1. 必須在定義時初始化。也就是必須是var s = “abcd”形式,而不能是如下形式:
                                        var s;
                                     s = “abcd”;

  2. 一但初始化完成,就不能再給變量賦與初始化值類型不同的值了。

  3. var要求是局部變量

  4. 使用var定義變量和object不同,它在效率上和使用強類型方式定義變量完全一樣。

 

四 、var 關鍵字的常見用途是用於構造函數調用表達式。

 1.使用 var則不能在變量聲明和對象實例化中重復類型名稱,如下面的示例所示:

var xs = new List<int>(); 

 

2.從 C# 9.0 開始,可以使用由目標確定類型的 new 表達式作為替代方法:

List<int> xs = new(); List<int>? ys = new();

3.下面的示例演示兩個查詢表達式。 在第一個表達式中,var 的使用是允許的,但不是必需的,因為查詢結果的類型可以明確表述為 IEnumerable<string>。 不過,在第二個表達式中,var 允許結果是一系列匿名類型,且相應類型的名稱只可供編譯器本身訪問。 如果使用 var,便無法為結果新建類。 請注意,在示例 #2 中,foreach 迭代變量 item 必須也為隱式類型。

// Example #1: var is optional when // the select clause specifies a string string[] words = { "apple", "strawberry", "grape", "peach", "banana" }; var wordQuery = from word in words where word[0] == 'g' select word; // Because each element in the sequence is a string, // not an anonymous type, var is optional here also. foreach (string s in wordQuery) { Console.WriteLine(s); } // Example #2: var is required because // the select clause specifies an anonymous type var custQuery = from cust in customers where cust.City == "Phoenix" select new { cust.Name, cust.Phone }; // var must be used because each item // in the sequence is an anonymous type foreach (var item in custQuery) { Console.WriteLine("Name={0}, Phone={1}", item.Name, item.Phone); }

 

本文轉載於:https://wenda.so.com/q/1378644256068714


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM