Linq專題之var關鍵字

2021-09-08 18:12:23 字數 1735 閱讀 9345

在c#1.0,c#2.0中宣告乙個變數時,總是要指定變數的型別,如果不指定變數型別編譯器就會報錯,產生編譯錯誤。在c#3.0中我們可以不指定變數的具體型別,而使用乙個新的關鍵字"var"來指定變數的型別,該變數的實際型別將在其初始化表示式中推到出來。下面例項**中,我們用var宣告了3個區域性變數,並獲取他們的型別:

1

using

system;

2using

system.collections.generic;

3using

system.linq;

4using

system.text;

5using

system.linq;67

namespace

linqdemo816

17private

static

void

lin**ar()18;

2526

27 console.writeline("

--numberid的型別----");

28console.writeline(numberid.gettype().tostring());

2930 console.writeline("

--name的型別----");

31console.writeline(name.gettype().tostring());

3233 console.writeline("

--arraycity的型別----");

34console.writeline(arraycity.gettype().tostring());

3536

console.readkey();

373839}

40}41 }

執行**可以看到:

我們從執行結果可以看到,最終numberid被推斷出型別為system.int32,name被推斷出system.string,arraycity推斷為system.string  陣列型別。完全是正確的。

但是在var使用過程中必須遵循3個原則:

1、var宣告的變數必須包含初始化器,初始化器必須為乙個表示式,且初始化器不能包含自身物件。

var numberid = numberid + 1;//編譯錯誤

可以看到上面的編譯錯誤很明顯。

2、var宣告的變數初始化值不能為null。

3、var宣告變數時,不能在同一語句中初始化多個隱式型別的變數。

看來var 關鍵字很方便,可以簡化**,但是大量使用var宣告變數會使得**難以理解。因此我們一般在linq表示式中難以確定變數的查詢結果的型別的時候使用var關鍵字是乙個不錯的選擇。

Linq基礎之常用關鍵字

linq在查詢時非常方便,下面分享一下我在專案開發常用的幾個關鍵字。為了演示,新建了3個類 student,course,score 分別是學生資訊表,課程資訊表,成績資訊表。學生資訊表 class student 學生主鍵 public string stunumber 學號 public str...

C 的var關鍵字

var 是3.5新出的乙個定義變數的型別 其實也就是弱化型別的定義 var可代替任何型別 編譯器會根據上下文來判斷你到底是想用什麼型別的 至於什麼情況下用到var 我想就是你無法確定自己將用的是什麼型別就可以使用var 類似 object但是效率比object高點 使用var定義變數時有以下四個特點...

delphi中var關鍵字

首先簡短說明在delphi中var的作用。var關鍵字在delphi 中是再普通不過的乙個關鍵字,大家都知道它的作用就是說明其後定義的是變數,區域性變數不能在定義是賦初值,全域性變數可以設初值。技術手冊中如是 描述 全域性變數會被初始化,如integer型會被初始化為0 字串為空,物件為nil。但是...