C#方法中的幾種參數傳遞


參數傳遞

以下為從菜鳥教程中學習記下的筆記

1、按值傳遞參數

這種方式復制參數的實際值給函數的形式參數,實參和形參使用的是兩個不同內存中的值。在這種情況下,當形參的值發生改變時,不會影響實參的值,從而保證了實參數據的安全。

例子:

//定義一個值傳遞的方法
public void swap(int x,int y)
{
}
//調用的時候
xxx.swap(a,b);

2、按引用傳遞參數

引用參數是一個對變量的內存位置的引用。當按引用傳遞參數時,與值參數不同的是,它不會為這些參數創建一個新的存儲位置。引用參數與提供給方法的實際參數具有相同的內存位置。

在C#中,使用ref關鍵字聲明引用參數。

例子:

//定義一個引用傳遞的方法
public void swap(ref int x,ref int y)
{
}
//調用的時候
xxx.swap(ref a,ref b);

3、按輸出傳遞參數

return語句可用於只從函數中返回一個值。但是,可以使用輸出函數來從函數中返回兩個值。輸出參數會把方法輸出的數值賦給自己,其他方面與引用參數類似。

例子:

//定義一個輸出傳遞的方法
public void getValue(out int x)
{
}
//調用的時候
xxx.getValue(out a);

提供給輸出函數的變量不需要賦值。當需要從一個參數沒有指定初始值的方法中返回值時,輸出函數特別有用。

實例:

using System;

namespace CalculatorApplication
{
  class NumberManipulator
  {
     public void getValues(out int x, out int y )
    {
         Console.WriteLine("請輸入第一個值: ");
         x = Convert.ToInt32(Console.ReadLine());
         Console.WriteLine("請輸入第二個值: ");
         y = Convert.ToInt32(Console.ReadLine());
    }
 
     static void Main(string[] args)
    {
        NumberManipulator n = new NumberManipulator();
        /* 局部變量定義 */
        int a , b;
       
        /* 調用函數來獲取值 */
        n.getValues(out a, out b);

        Console.WriteLine("在方法調用之后,a 的值: {0}", a);
        Console.WriteLine("在方法調用之后,b 的值: {0}", b);
        Console.ReadLine();
    }
  }
}

注意:out型數據在方法中必須要賦值,否則編譯器會報錯。


免責聲明!

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



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