最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中參數(shù)數(shù)組、引用參數(shù)和輸出參數(shù)示例詳解

 更新時間:2018年05月16日 08:41:46   作者:mwangjs  
這篇文章主要給大家介紹了關(guān)于C#中參數(shù)數(shù)組、引用參數(shù)和輸出參數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文主要介紹了關(guān)于C#參數(shù)數(shù)組、引用參數(shù)和輸出參數(shù)的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧

參數(shù)數(shù)組

在C#中,可以為函數(shù)指定一個不定長的參數(shù),這個參數(shù)是函數(shù)定義中的最后一個參數(shù),這個參數(shù)叫做參數(shù)數(shù)組。

下面是一個例子:

namespace Ch6Ex2
{
 class Program
 {
 static int SumVals(params int[] vals)
 {
 int sum = 0;
 foreach (int val in vals)
 {
 sum += val;
 }
 return sum;
 }
 static void Main(string[] args)
 {
 int sum = SumVals(1, 2, 3, 4, 5);
 Console.WriteLine($"Summed Values = {sum}");
 Console.ReadKey();
 }
 }
}

函數(shù)SumVals有一個參數(shù)數(shù)組,即vals,在定義該參數(shù)時,需要使用params參數(shù)。在調(diào)用該函數(shù)時,可以給參數(shù)輸入傳入多個實參。

使用分散式傳參時,編譯器做如下事:

1)接受實參列表,用它們在堆中創(chuàng)建并初始化一個數(shù)組。

2)把數(shù)組的引用保存到棧中的形參里。

3)如果在對應(yīng)的形參數(shù)組的位置沒有實參,編譯器會創(chuàng)建一個有零個元素的數(shù)組來使用。

4)如果數(shù)組參數(shù)是值類型,那么值被復(fù)制,實參不受方法內(nèi)部的影響。

5)如果數(shù)組參數(shù)是引用類型,那么引用被復(fù)制,實參引用的對象可以受到方法內(nèi)部的影響。

在使用數(shù)組式傳參時,編譯器使用你的數(shù)據(jù)而不是重新創(chuàng)建一個。即相當(dāng)引用參數(shù)。

引用參數(shù)

可以通過引用傳遞參數(shù),需要使用ref關(guān)鍵字。

下面是一個例子:

namespace MyProgram
{
 class Program
 {
 static void SwapInts (ref int a, ref int b)
 {
  int temp = b;
  b = a;
  a = temp; 
 }
 static void Main(string[] args)
 {
  int a = 1;
  int b = 2;
  Console.WriteLine($"a = {a}, b = ");
  SwapInts(ref a, ref b);
  Console.WriteLine($"a = {a}, b = ");
  Console.ReadKey();
 }
 }
}

這是一個簡單的交換兩個值的程序,由于函數(shù)SwapInts使用了引用參數(shù),所以可以在函數(shù)中修改變量a和b的值,需要注意的是,在調(diào)用函數(shù)時也要使用ref傳遞引用參數(shù)。

輸出參數(shù)

輸出參數(shù)使用out關(guān)鍵字,它的效果與引用參數(shù)幾乎相同,不同點是:

  • 引用參數(shù)的實參必須是已經(jīng)賦值的變量,而輸出參數(shù)不必。
  • 函數(shù)使用輸出參數(shù)時,應(yīng)該把它看作是未賦值的。

下面是一個例子:

namespace MyProgram
{
 class Program
 {
 static int MaxValue (int[] intArray, out int maxIndex)
 {
  int maxValue = intArray[0];
  maxIndex = 0;
  for (int i = 0; i < intArray.Length; i++)
  {
  if (intArray[i] > maxValue)
  {
   maxValue = intArray[i];
   maxIndex = i;
  }
  }
  return maxValue;
 }
 static void Main(string[] args)
 {
  int maxIndex;
  int[] intArray = { 12, 45, 23, 77, 73 };
  int maxValue = MaxValue(intArray, out maxIndex);
  Console.WriteLine($"maxValue = {maxValue}, maxIndex = {maxIndex}.");
  Console.ReadKey();
 }
 }
}

這個函數(shù)將一個數(shù)組中最大值的索引作為輸出參數(shù),返回最大值。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • C#查詢SqlServer數(shù)據(jù)庫并返回單個值的方法

    C#查詢SqlServer數(shù)據(jù)庫并返回單個值的方法

    這篇文章主要介紹了C#查詢SqlServer數(shù)據(jù)庫并返回單個值的方法,涉及C#操作SQLServer數(shù)據(jù)庫查詢的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C#計算代碼執(zhí)行時間的方法

    C#計算代碼執(zhí)行時間的方法

    在一些測試工作時我們需要獲得高精度的代碼執(zhí)行時間以比較其效率。
    2013-03-03
  • Unity中協(xié)程IEnumerator的使用方法介紹詳解

    Unity中協(xié)程IEnumerator的使用方法介紹詳解

    本文主要介紹了Unity中協(xié)程IEnumerator的使用方法介紹詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C#中TreeView實現(xiàn)適合兩級節(jié)點的選中節(jié)點方法

    C#中TreeView實現(xiàn)適合兩級節(jié)點的選中節(jié)點方法

    這篇文章主要介紹了C#中TreeView實現(xiàn)適合兩級節(jié)點的選中節(jié)點方法,實例分析了C#中TreeView節(jié)點操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • C#使用StreamReader和StreamWriter類讀寫操作文件

    C#使用StreamReader和StreamWriter類讀寫操作文件

    這篇文章介紹了C#使用StreamReader和StreamWriter類讀寫操作文件的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#實現(xiàn)計算器功能(winform版)

    C#實現(xiàn)計算器功能(winform版)

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)winform版的計算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C#通過GET/POST方式發(fā)送Http請求

    C#通過GET/POST方式發(fā)送Http請求

    本文主要介紹了C#實現(xiàn)http請求的兩種方式,get和post方式。文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C#如何處理JSON

    C#如何處理JSON

    這篇文章主要介紹了C#如何處理JSON問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • C#通過IComparable實現(xiàn)ListT.sort()排序

    C#通過IComparable實現(xiàn)ListT.sort()排序

    這篇文章主要介紹了C#通過IComparable實現(xiàn)ListT.sort()排序的方法,可實現(xiàn)自定義的排序方法,是非常實用的技巧,需要的朋友可以參考下
    2014-09-09
  • Unity3D創(chuàng)建圓柱體的方法

    Unity3D創(chuàng)建圓柱體的方法

    這篇文章主要為大家詳細(xì)介紹了Unity3D創(chuàng)建圓柱體的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評論

九江市| 望谟县| 申扎县| 衡东县| 长泰县| 库车县| 闵行区| 裕民县| 天峻县| 青州市| 观塘区| 辽源市| 雷山县| 麻江县| 五华县| 微博| 榆林市| 容城县| 包头市| 阿鲁科尔沁旗| 五大连池市| 安福县| 花莲县| 浑源县| 满洲里市| 嘉义县| 云阳县| 萍乡市| 资溪县| 开阳县| 玉山县| 大埔县| 镶黄旗| 镇安县| 姚安县| 莱西市| 灵山县| 望谟县| 济阳县| 新平| 文登市|