C#新功能--命名參數與可選參數


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

兩個在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);
            test("li", "dd", 7,false);
            test("li", "dd", 7, true,false);
        }

  這里也可以用到上述的命名參數:

   test("li", "dd", 7, e:true);

  這樣d參數依然可以使用默認值,如果沒有命名參數,想給e賦值,必須還要給d賦值.在使用可選參數的過程中,由於命名參數的出現,更提供了許多方便.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM