C# 2015 學習紀錄:控制結構、參數傳遞

By

邏輯運算元 && ||

當我們使用「&&」時,條件式內的兩個條件都必須為真「True」才會符合AND的條件 ,而「||」則是兩個條件內的任一為真即可,而不論是「&&」或「||」在檢驗條件式時,只要第一個條件式不成立,第二個條件的內容即不會執行(short-circuit operators)。如果必須要執行第二個條件式的話,可以改用「&」或「|」,來強制讓第二個條件式執行完再判斷 True或 Flase。

邏輯運算元的運算順序是先計算算數運算與相關比較邏輯元後,再執行邏輯判斷,如果有需要或對運算順序有疑問的話,可以用「Parenthese」雙括號來強制指定運算順序。

選擇性的傳遞參數

當使用C#呼叫方法(Method)時,如果我們遇到呼叫方法時無法指定一些參數時、想要用預設參數(Optional Parameters)時,我們可以在定義方法時將參數的預設值是先定義好。

像是:

private decimal GetFutureValue

(decimal monthlyInvestment,

decimal monthlyInterestRate = 0.05m, int months = 12) // 這2個引數(參數)已是先定義好值

{

decima futureValue = 0m;

for (int i=1; i < months ; i++)

{

futureValue = (futureValue + monthlyInvestment) + (1 + monthlyInterestRate);

}

return futureValue;

}

在這個 GetFutureValue的方法裡,第一個monthlyInvestment是在呼叫方法時必須要代入的參數,但是第二、三個參數monthlyInterestRate 與 month則是彈性需要的,以下用三個呼叫的方式來說明:

  1. decimal futureValue = this.GetFutureVale (monthlyInvestment, monthlyInterestRate, months),傳遞三個變數去呼叫函數,就像平常的使用方式。
  2. decimal futureValue = this.GetFutureValue (monthlyInvestment, monthlyInterestRate),省略了第三個變數去呼叫函數,此時程式會自動以函數預設的month = 12作為參數使用。

在使用預設參數時有幾點需要注意:

  1. 預設參數的位置必須在一般參數的後面,也就是在宣告彈性的或預設的參數時,其後的參數都必須要也是彈性(Optional)或預設(Default)的。
  2. 如果你在呼叫預設、彈性參數時的引數是使用位置(Position)方式傳遞的話,則這彈性參數之前的一般參數都必須在呼叫此函數時先定義好要傳遞的值(Value),且函數內引數的預設參數必須要有順序性,以上面的例子來說明就是不可以忽略第二個monthlyInterestRate引數,然後直接傳遞month的變數。
  3. 如果參數傳遞的方式是以名稱(Name)方式時就不用按照第2點的限制使用,可以不用管該變數時一般的還是彈性的。

參數傳遞如何使用名稱(Name)傳遞?

使用宣告變數(Parameter)時的名稱,接著以「:」冒號接著,再打上要呼叫函數的變數名稱(Argument)即可。像是:decimal futureValue = this.GetFutureValue(monthlyInvestment:monthlyInvestmet)

使用以名稱方式傳遞參數的好處就是不用遵守該函數的變數是不是預設變數,以及不用遵守呼叫時的變數順序,另外也可以與位置(Position)傳遞方式合併使用:

decimal futureValue = this.GetFutureValue (monthlyInvestment, months:months)


0 意見:

張貼留言