自動屬性
public class person
public int age
public person() }
person p = new person();
//p.username = "aa";
console.writeline(p.username);
意義不是很大,純粹解決機械勞動。編譯器自動為你生成get、set操作以及字段,並且你不能使用欄位也不能自定義get、set操作,不過你可以分別定義get和set的訪問級別。
物件初始化器
public class person
public int age
public override string tostring()
age:", this.username, this.age);
} }
person p = new person() ;
console.writeline(p.tostring());
編譯器會自動為你做setter操作,使得原本幾行的屬性賦值操作能在一行中完成。這裡需要注意:
· 允許只給一部分屬性賦值,包括internal訪問級別 ·
可以結合建構函式一起使用,並且建構函式初始化先於物件初始化器執行
集合初始化器
public class person
public int age
public override string tostring()
age:", this.username, this.age);
} }
var persons = new list ,
new person };
foreach(var p in persons)
console.writeline(p.tostring());
編譯器會自動為你做集合插入操作。如果你為hashtable初始化的話就相當於使用了兩個物件初始化器。
lambda表示式
var list = new ;
var result = array.findall(list, s => (s.indexof("a") > -1));
foreach (var v in result)
console.writeline(v);
其實和2.0中的匿名方法差不多,都是用於產生內聯方法,只不過lambda表示式的語法更為簡潔。語法如下:
(引數列表) => 表示式或者語句塊
其中:引數個數:可以有多個引數,乙個引數,或者無引數。
表示式或者語句塊:這部分就是我們平常寫函式的實現部分(函式體)。
linq中文教程 二
what s linq?language integrated query 是也。說得再明白一些,這是程式語言的一種新特性,能夠將資料查詢語句整合到程式語言中。目前,linq 支援的語言有 c 和vb。為啥會有 linq 主要還是因為現在的資料格式越來越多,資料庫 xml 陣列 雜湊表 每一種都有自...
linq中文教程 七
datacontext datacontext型別 資料上下文 是system.data.linq命名空間下的重要型別,用於把查詢句法翻譯成sql語句,以及把資料從資料庫返回給呼叫方和把實體的修改寫入資料庫。datacontext提供了以下一些使用的功能 以日誌形式記錄datacontext生成的s...
linq中文教程 十
使用dbdatareader資料來源 using system.data.sqlclient var conn new sqlconnection server database northwind uid pwd var ctx new datacontext conn var cmd new s...