熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

c#學習體會:使用 ref 和 out 傳遞數組

2022-06-13   來源: .NET編程 

  c#學習體會:使用 ref 和 out 傳遞數組(downmoon)希望與大家分享
與所有的 out 參數一樣在使用數組類型的 out 參數前必須先為其賦值即必須由接受方為其賦值例如




public static void MyMethod(out int[] arr)
{
   arr = new int[];   // 數組arr的明確委派
}
與所有的 ref 參數一樣數組類型的 ref 參數必須由調用方明確賦值因此不需要由接受方明確賦值可以將數組類型的 ref 參數更改為調用的結果例如可以為數組賦以 null 值或將其初始化為另一個數組例如

public static void MyMethod(ref int[] arr)
{
   arr = new int[];   // arr初始化為一個新的數組
}
下面的兩個示例說明 out 和 ref 在將數組傳遞給方法上的用法差異

  示例
在此例中在調用方(Main 方法)中聲明數組 myArray並在 FillArray 方法中初始化此數組然後將數組元素返回調用方並顯示



using System;
class TestOut
{
   static public void FillArray(out int[] myArray)
   {
      // 初始化數組(必須):
      myArray = new int[{    };
   }

   static public void Main()
   {
      int[] myArray; // 初始化數組(不是必須的!)

      // 傳遞數組給(使用out方式的)調用方:
      FillArray(out myArray);

      // 顯示數組元素
      ConsoleWriteLine(數組元素是:);
      for (int i=; i < myArrayLength; i++)
         ConsoleWriteLine(myArray[i]);
   }
}
輸出
數組元素是:





示例
在此例中在調用方(Main 方法)中初始化數組 myArray並通過使用 ref 參數將其傳遞給 FillArray 方法在 FillArray 方法中更新某些數組元素然後將數組元素返回調用方並顯示

using System;
class TestRef
{
   public static void FillArray(ref int[] arr)
   {
      // 根據需要創建一新的數組(不是必須的)
      if (arr == null)
         arr = new int[];
      // 否則填充數組就可以了
      arr[] = ;
      arr[] = ;
   }

   static public void Main ()
   {
      //初始化數組:
      int[] myArray = {}; 

      // 使用ref傳遞數組:
      FillArray(ref myArray);

      //顯示更新後的數組元素:
      ConsoleWriteLine(數組元素是:);
      for (int i = ; i < myArrayLength; i++)
         ConsoleWriteLine(myArray[i]);
   }
}
輸出
數組元素是:





From:http://tw.wingwit.com/Article/program/net/201311/13303.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.