C 新功能 命名引數與可選引數

2022-01-14 15:28:43 字數 1189 閱讀 1201

可能是篇幅太短了,又被打入冷宮了.先重發一篇加上可選引數.本來不想加這個呢,因為可選引數可能大家用的會多點.其實這

兩個在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);

現在通過命名引數,就很容易閱讀和理解這行**將執行的操作.使用命名引數對最終的編譯

沒有影響,命名引數僅用在應用程式的編碼中.

二、可選引數

可選引數允許為方法的一些引數提供預設值,並允許使用者過載型別,因此,即使只有乙個方法,也能處理所有變體

public

void test(string a, string b, int c, bool d=true,bool e=false

)

呼叫:

public

void

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個引數,但實際傳遞...