程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#編程中應用ref和out症結字來傳遞數組對象的用法

C#編程中應用ref和out症結字來傳遞數組對象的用法

編輯:C#入門知識

C#編程中應用ref和out症結字來傳遞數組對象的用法。本站提示廣大學習愛好者:(C#編程中應用ref和out症結字來傳遞數組對象的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#編程中應用ref和out症結字來傳遞數組對象的用法正文


在 C# 中,數組現實上是對象,而不只是像 C 和 C++ 中那樣的可尋址持續內存區域。 Array 是一切數組類型的籠統基類型。 可使用 Array 具有的屬性和其他類成員。 這類用法的一個示例是應用 Length 屬性來獲得數組的長度。 上面的代碼將 numbers 數組的長度(為 5)賦給名為 lengthOfNumbers 的變量:

int[] numbers = { 1, 2, 3, 4, 5 };
int lengthOfNumbers = numbers.Length;

Array 類供給了很多其他有效的辦法和屬性,用於排序、搜刮和復制數組。
示例
此示例應用 Rank 屬性來顯示數組的維數。

class TestArraysClass
{
  static void Main()
  {
    // Declare and initialize an array:
    int[,] theArray = new int[5, 10];
    System.Console.WriteLine("The array has {0} dimensions.", theArray.Rank);
  }
}

輸入:

 The array has 2 dimensions.

應用 ref 和 out 傳遞數組
與一切 out 參數一樣,在應用數組類型的 out 參數前必需先為其賦值;即必需由被挪用方為其賦值。例如:

static void TestMethod1(out int[] arr)
{
  arr = new int[10];  // definite assignment of arr
}

與一切 ref 參數一樣,數組類型的 ref 參數必需由挪用方明白賦值。是以,不須要由被挪用方明白賦值。可以將數組類型的 ref 參數更改成挪用的成果。例如,可認為數組賦以 null 值,或將其初始化為另外一個數組。例如:

static void TestMethod2(ref int[] arr)
{
  arr = new int[10];  // arr initialized to a different array
}

上面兩個示例演示了 out 與 ref 在將數組傳遞給辦法時的用法差別。
在此示例中,在挪用方(Main 辦法)中聲明數組 theArray,並在 FillArray 辦法中初始化此數組。然後,數組元素將前往挪用方並顯示。

class TestOut
{
  static void FillArray(out int[] arr)
  {
    // Initialize the array:
    arr = new int[5] { 1, 2, 3, 4, 5 };
  }

  static void Main()
  {
    int[] theArray; // Initialization is not required

    // Pass the array to the callee using out:
    FillArray(out theArray);

    // Display the array elements:
    System.Console.WriteLine("Array elements are:");
    for (int i = 0; i < theArray.Length; i++)
    {
      System.Console.Write(theArray[i] + " ");
    }

    // Keep the console window open in debug mode.
    System.Console.WriteLine("Press any key to exit.");
    System.Console.ReadKey();
  }
}

輸入:

    Array elements are:
    1 2 3 4 5  

    
在此示例中,在挪用方(Main 辦法)中初始化數組 theArray,並經由過程應用 ref 參數將其傳遞給 FillArray 辦法。在 FillArray 辦法中更新某些數組元素。然後,數組元素將前往挪用方並顯示。

class TestRef
{
  static void FillArray(ref int[] arr)
  {
    // Create the array on demand:
    if (arr == null)
    {
      arr = new int[10];
    }
    // Fill the array:
    arr[0] = 1111;
    arr[4] = 5555;
  }

  static void Main()
  {
    // Initialize the array:
    int[] theArray = { 1, 2, 3, 4, 5 };

    // Pass the array using ref:
    FillArray(ref theArray);

    // Display the updated array:
    System.Console.WriteLine("Array elements are:");
    for (int i = 0; i < theArray.Length; i++)
    {
      System.Console.Write(theArray[i] + " ");
    }

    // Keep the console window open in debug mode.
    System.Console.WriteLine("Press any key to exit.");
    System.Console.ReadKey();
  }
}

輸入:

    Array elements are:
    1111 2 3 4 5555

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved