天天看點

C#程式設計基礎——方法

目錄

         方法的聲明

方法的參數

值參數

引用參數ref

輸出參數out

ref與out的差別

方法的重載與重寫

方法的聲明

文法格式:

[通路修飾符] 傳回類型 方法名()
{
    方法體
}
           

方法常用的通路修飾符為public、protected、private、internal、static、virtual等。具體的是作用說明在上一篇部落格已經講到“傳送門”

傳回類型——方法可以有傳回值也可以沒有傳回值。如果有傳回值,則需要說明傳回值的類型。如果沒有傳回值,則它的傳回類型可标為void,預設情況為void。

形參表——小括号内寫參數,可由零個或多個用逗号分隔的形式參數組成。

方法的參數

參數的功效就是能使資訊在方法中傳入或傳出。當聲明一個方法是,包含的參數說明是形式參數(形參)。當調用一個方法時,給出的對應實際參數是實在參數(實參)。

值參數

在方法聲明時不加修飾的形參就是值參數,它表明實參與形參之間按值傳遞。

// 此方法用來比較兩個數的大小,傳回最大值
public static int show(int num1,int num2)
{
           
     int number = num1 > num2 ? num1 : num2;  //三元表達式,如果num1大于num2則顯示num1,反之則顯示num2
     return number;
                       
}
           

引用參數ref

如果調用一個方法,期望能夠對傳遞給它的實際變量進行操作,按值傳遞是不可能實作的。是以要用ref關鍵字來解決此類問題。

ref關鍵字僅對跟它後面的參數有效,而不能應用于整個參數表。

在方法外,ref參數必須在調用之前明确指派,在方法内,ref參數被視為以賦過初始值。

static void Main(string[] args)
{
     int number1 = 10;
     int number2 = 20;
          
     int sum = show(ref number1, ref number2);
     Console.WriteLine(sum);
     Console.ReadKey();
}

public static int show(ref int num1,ref int num2)
{
     num1 = 100;
     num2 = 200;
     return num1 + num2;
}
           

 其sum的值為300; 

輸出參數out

在參數前加out修飾符的被稱為輸出參數。它與ref參數相似,但是也有不同。out參數它隻能用于從方法中傳出值,而不能從方法調用處接受實參資料。

在方法内,out參數必須賦初值,方法外可以不賦初值。

一個方法可以傳回多個值,并且類型不同。

static void Main(string[] args)
{
    int number1=10;
    int number2=20;
    int sum=AddNumber(out number1,out number2)        
}
public static int AddNumber(out int  num1, out int num2)
{
    num1 = 100;
    num2 = 200;
    return num1 + num2;
}
           

其sum的值為300; 

ref與out的差別

ref可以把值傳到方法裡,又可以把值傳到方法外。

在方法外,ref參數必須在調用之前明确指派。

out可以把方法裡的值傳出去。

在方法内,out參數必須賦初值。

方法的重載與重寫

重載:如果一個類中有兩個或兩個以上的方法同名,但他們的形參個數或形參類型有所不同,與傳回值無關。。

重寫(override):首先基類的方法用關鍵字virtual修飾為虛方法,再由子類用關鍵字override修飾與基類中虛方法有相同簽名的方法,表明是對基類的虛方法的重寫。

隻有使用override修飾符,子類中的方法才能重寫基類中的虛方法,否則就是隐藏基類的方法。