Reading C#高級編程(第四版)……………………………………………………………………………………………………………………………………………………………
C#基礎語法
1、類與結構的區別
所有方法必須逐個定義訪問控制
結構默認是public,不能定義無參構造函數,不能繼承
結構的使用可以用new,也可以不用,不用時結構中的字段都未被初始化
2、字段、屬性和方法
屬性定義:
private string foreName;
public string ForeName {
get
{
return foreName;
}
set
{
if (value.Length > 20) {
//throw exception
} else {
foreName=value
}
}
}
規則一:get set 必須有一個具備屬性的訪問級別
規則二:只讀屬性通過省略set來實現
3、按值和引用傳遞參數
除了string,引用類型對象傳遞得是對象引用,修改會被作用到對象上
對於值對象如果要傳遞變化,則需用ref,類似&,調用時必須顯示指定ref,如 SomeFun(ints,ref i);
out 參數必須在函數體內初始化 SomeFun(out i);
4、方法重載
方法重載不能通過返回值、ref、out來定義
5、構造函數和靜態構造函數
c#的構造函數能把成員變量初始化爲null和0,可以無需定義
靜態構造函數:用於確保靜態的成員和屬性初始化,無參數,無訪問控制
static MyClass() {}
構造函數調用其他構造函數的方法:
public: Car(string model):this(model,4) {}
調用基類的方法:
public: Car(string model):base(model) {}
6、只讀字段
只讀使用readonly,該字段只能在構造函數中賦值
7、object類
object是所有類,結構的根
ToString
GetHashTable
Equals
ReferenceEquals
Finalize
GetType
MemberwiseClone
8、partial、static類
partial類之間可以合併爲一個類,訪問控制相同
static類不能被實例化