看nutshell
看nutshell
簡化**的微小修改
1.可選引數,需要給定乙個預設值
2.預設值也可以指定為null
3.命名實參:在引數呼叫的時候寫上引數的命名,可以打亂引數的順序
4.命名實參和位置實參可以混用,位置實參必須在最前面
5.當引數是乙個表示式的時候,會先全部計算好所有引數表示式的值,然後再允許本方法。函式表示式引數的計算順序是從左到右的
6.命名引數和可選引數結合
static void main(string args)
static void foo(string a,int b = 1, string c = "fff")
7.命名引數和可選引數可以有效減少過載的數量
1.協變性:用於向呼叫者返回某項操作的值,(由子類向基類轉化)
2.逆變性:傳入api的值,(由基類向子類轉化)
3.不變性:雙向傳遞的值
4.協變和逆變只能使用在泛型的介面和委託中
5.盡量不自定義out和in,只使用.net框架提供的協變和逆變功能
對於lock**,編譯器會幫我們預設的生成一些別的**,c# 4更好的解決了這個問題。確保鎖的釋放,或者說應該被釋放的時候才釋放,不需要釋放的時候不需要釋放
事件不顯示的包含add和remove方法,和屬性一樣,在後台建立乙個field。
1.繫結:決定使用哪個成員的過程
2.靜態型別:繫結發生在編譯時
3.動態型別:繫結發生在編譯時。編譯器可以檢查語法是否正確,但是無法檢查使用的方法或屬性是否真的存在
1.知道要呼叫的成員名稱,要傳入的引數,要呼叫的物件
2.所呼叫物件的型別和引數的型別
3.物件可以通過分析提供給他的名稱和引數來響應某個呼叫
1.使用dynamic
2.事實上,dynamic並不代表乙個特定的clr型別。它實際上只是包含dynamicattribute特性的object型別。但是可以將其視為乙個真正的型別
1.特點:
幾乎所有的clr型別都可以隱式轉換為dynamic型別
所有dynamic型別都可以轉為clr型別
使用dynamic型別的表示式通常會動態的求值
動態求值的表示式的靜態型別通常被視為dynamic
可以和動態語言進行互動,python
1.執行時型別推斷
2.彌補泛型操作符的不足
3.鴨子型別
知道在執行時一定有固定的成員,但是無法確定這個成員,因為所有符合這個基類的子類都有這個成員(但是不一定定義在基類中)。可以使用動態型別來呼叫
4.多重分發
對於靜態型別,c#使用單一分發,有函式過載的情況下,在編譯時就確定了唯一的一種,在執行時就會執行哪一種。
多重分發,有過載的情況,在執行時才會確定使用哪一種型別
static int count(icollectioncollection)
static int count(icollection collection)
static int count(string collection)
static int count(ienumerable collection)
return count;
}static void print(ienumerable collection)
1.dlr:動態語言執行時
2.dlr:動態語言執行時是所有動態語言和c#編譯器用來動態執行**的庫
3.dlr將用繫結器、呼叫點、元物件,以及各種概念表示的**轉換為表示式樹,後者可以被編譯為il,並最終由clr編譯為本地**。
1.目的:基於執行時才能知道的資訊以高階形式表示並執行**
2.呼叫點:呼叫方法的地方
3.繫結器:取決於呼叫的語言,並且是呼叫的一部分
4.接收器:動態型別所引用的物件
5.規則:如何執行乙個呼叫所作出的決策。呼叫點表現為這種行為時所處的環境以及行為本身
6.快取
1.如果使用了動態,那麼它就是動態的。如果方法有過載,那麼dynamic引數不一定會被使用
2.除了在方法內部以外,dynamic型別的引數將被視為object型別,也確實是object型別
2.clr型別和動態型別之間的轉換
3.動態表示式並不總是動態求值的
參考c# nut shell
第十三章 限制 第十四章 參考
宣告 此文章翻譯自box2d v2.2.0使用者手冊,僅供學習參考。box2d使用了一些近似值來模擬剛體的物理效果。這就帶來了一些限制。下面是當前的一些限制 疊加一些重物體到很輕的物體上面會不穩定。當質量比例超過10 1的時候穩定性會下降。被聯結器連線的物體鏈,輕物體吊著重物體容易被拉伸。比如說,乙...
第十三章 併發
13.1 動機 13.2 基本執行緒 如果必須要控制現成的執行順序,最好是根本不用執行緒,而是自己編寫特定順序彼此控制的協作子程式。繼承thread類或者實現runnable介面。內部類實現。13.3 共享受限資源 1 如果要對類中的某個方法進行同步控制,最好同步所有方法。如果忽略了其中乙個,通常很...
第十三章 類
1.類簡單地說是乙個性的資料型別。類當中有資料成員,和成員函式。類的基本思想就是體現出資料的抽象和封裝。2.這裡只需要說明乙個問題即可 就是類成員函式的const型別 class screen public const int get const int i const int j const 這裡...