匿名型別關鍵字var
var關鍵字,可以把它理解為型別佔位符,它並不是c#中的一種基本型別。它能在你編寫程式的時候,自動計算出等式右邊的型別,而且支援智慧型感知。
//可以是整型
var vint
=123;//
可以是字串
var vstring ="
hello var!";
//可以是日期型別
var vdatetime
=new
datetime();
//甚至可以是乙個陣列
var vintarray
=new
int ;
但需要注意的是,一旦指明型別之後,不能再更改它的型別了,否則將報錯。
//將它指定為整型
var vint
=123;//
這樣就不行了,第一次指定型別之後,vint就被指定為int型別了,而不能將string值為它賦值
vint ="
string";
注意事項
但是卻可以這樣初始化null:
var vstring=(string)
null
;
其實等價於下面這段**:
string vstring=null
;
//name和age就是乙個成員宣告
var student
=new
;
staticobject
getstudent()
;return
student;
}
但是呼叫起來就比較麻煩了
staticvoid
main(string args)
\nage:",
student.gettype().getproperty(
"name
").getvalue(student,
null
),student.gettype().getproperty(
"age
").getvalue(student,
null
));}
一些匿名型別的使用技巧
我們不能直接在匿名型別中這樣做,但可以通過一些間接的手段。
staticvoid
main(string args)
",name);
};var customer
=new;//
智慧型感知已經發現了這個方法,我們可以像平常那樣去呼叫了
customer.welcomeinfo(customer.name);
}
privatevoid
form1_load(
object
sender, eventargs e)
private
void
updatedate()
;var student2
=new
;var student3
=new
;var students
=new
list
<
object
>
;datagridview1.datasource
=students;
}
staticvoid
main(string args)
;var student2
=new
;var student3
=new
;var student4
=new
;console.writeline(student1.equals(student2));
console.writeline(student1.equals(student3));
console.writeline(student1.equals(student4));
//輸出結果 true , false , false
}
staticvoid
main(string args)
)) : n;
};console.writeline(factorial(
5));
console.readkey();
}
LINQ學習系列 1 4 匿名物件
一.匿名物件介紹 上 var result new view code 若想輸出這個新物件的age屬性的內容,可以讓console.writeline深入到該物件的下一層,console.writeline reuslt,1 即可 雖然匿名物件沒有物件名,不過仍然是型別 編譯器將自動為其生成名字。的...
Linq 學習 1 概述
本篇簡單回顧c 語言集合操作的變化,通過與linq對等的物件導向的語法來認識linq。linq是language integrated query,初識linq感覺跟sql server的tsql很像,可以進行語言必備的邏輯操作,也可以實現對集合的直接查詢。net1.x時代 c 不支援泛型,集合用元...
LINQ學習筆記 1 什麼是LINQ
因為工作調動的關係,已經很久沒有上來寫部落格了,最近新的工作算是穩定了,所以又有時間來跟大家分享我最近的學習心得了,真的很開心,哈哈!今天主要跟大家分享一下linq的知識,希望大家能夠支援。在學習linq之前,我們有必要知道linq到底是什麼東東?學習它有什麼用途,下面就來介紹一下什麼是linq。1...