可能是篇幅太短了,又被打入冷宮了.先重發一篇加上可選引數.本來不想加這個呢,因為可選引數可能大家用的會多點.其實這
兩個在vb中早就有了,c#中,在.net4發布之前是不能使用的.看到這個比較興奮,我想大家也有好多人不知道,所以就強烈的想與大家
分享一下.
一、命名引數
命名引數會潛在的改變編寫**的方式.這個新功能能使**更容易閱讀和理解.
例如,看一下system.io命名空間中的file.copy()方法,它一般構建為
file.copy(@"c:\mytestfile.txt",@"c:\myotherfile.txt",true);
在這行**中,這個簡單的方法使用3個引數,但實際傳遞給copy()方法的是什麼內容?除非
知道這個方法的前前後後,否則 僅看一眼該方法,很難判斷出該方法會執行何種操作.而通過命名
引數,就可以在提供引數值之前使用**中的引數名,如下所示:
file.copy(sourcefilename: @"c:\mytestfile.txt",destfilename: @"c:\myotherfile.txt",
overwrite:true);
現在通過命名引數,就很容易閱讀和理解這行**將執行的操作.使用命名引數對最終的編譯
沒有影響,命名引數僅用在應用程式的編碼中.
二、可選引數
可選引數允許為方法的一些引數提供預設值,並允許使用者過載型別,因此,即使只有乙個方法,也能處理所有變體
publicvoid test(string a, string b, int c, bool d=true,bool e=false
)
呼叫:
publicvoid
invoke()
這裡也可以用到上述的命名引數:
test("li", "dd", 7, e:true);
這樣d引數依然可以使用預設值,如果沒有命名引數,想給e賦值,必須還要給d賦值.在使用可選引數的過程中,由於命名引數的出現,更提供了許多方便.
C 新功能 命名引數與可選引數
可能是篇幅太短了,又被打入冷宮了.先重發一篇加上可選引數.本來不想加這個呢,因為可選引數可能大家用的會多點.其實這 兩個在vb中早就有了,c 中,在.net4發布之前是不能使用的.看到這個比較興奮,我想大家也有好多人不知道,所以就強烈的想與大家 分享一下.一 命名引數 命名引數會潛在的改變編寫 的方...
C 新功能 命名引數
命名引數會潛在的改變編寫 的方式.這個新功能能使 更容易閱讀和理解.例如,看一下system.io命名空間中的file.copy 方法,它一般構建為 file.copy c mytestfile.txt c myotherfile.txt true 在這行 中,這個簡單的方法使用3個引數,但實際傳遞...
C 新功能 命名引數
命名引數會潛在的改變編寫 的方式.這個新功能能使 更容易閱讀和理解.例如,看一下system.io命名空間中的file.copy 方法,它一般構建為 file.copy c mytestfile.txt c myotherfile.txt true 在這行 中,這個簡單的方法使用3個引數,但實際傳遞...