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

C#方法params參數(shù)用法及說明

 更新時間:2026年06月06日 10:15:17   作者:z落落  
這篇文章主要介紹了C#方法params參數(shù)用法及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、params參數(shù)核心定義(必背,對應(yīng)原代碼注釋)

//params int[] a:
//params:參數(shù)列表 允許傳遞不定數(shù)量的參數(shù),
//int[] a;參數(shù)a就是整型的容器,可以存儲多個整型的數(shù) 
// a.Length 就是容器的長度
//string[] a 存放字符串的容器
//bool[] b  存放bool的容器

? 必記知識點(核心,直接背):

  • params是C#中用于實現(xiàn)不定數(shù)量參數(shù)傳遞的關(guān)鍵字,核心作用是:允許調(diào)用方法時,傳遞任意數(shù)量(0個、1個、多個)的同類型參數(shù)。

  • params參數(shù)本質(zhì)是“數(shù)組”:params后面必須跟“數(shù)組類型”(如int[]、string[]、bool[]),該數(shù)組就是存儲所有傳遞參數(shù)的“容器”。

  • 核心屬性:數(shù)組名.Length(如a.Length),表示容器中存儲的參數(shù)個數(shù)(即傳遞的參數(shù)數(shù)量)。

  • 常見場景:params int[](存整型參數(shù))、params string[](存字符串參數(shù))、params bool[](存bool類型參數(shù)),本質(zhì)都是數(shù)組。

二、params參數(shù)的語法(必默寫,易錯重點)

1. 方法定義語法(硬性要求)

// 格式:修飾符 static 返回值類型 方法名(params 數(shù)組類型 數(shù)組名)
// 核心要求:params必須修飾數(shù)組,且只能修飾一個參數(shù),且該參數(shù)必須是方法的最后一個參數(shù)
// 場景1:僅params參數(shù)(無其他參數(shù))
public static void Test1(params int[] a)
{
    //Console.WriteLine(a.Length) ; // 最大下標= a.Length-1;
    //Console.WriteLine(a[0]); //訪問每一個參數(shù)時候 通過參數(shù)的下標進行訪問, 下標從0開始
    //Console.WriteLine(a[a.Length-1]);//取最后一個參數(shù);
    //取出所有的參數(shù)(循環(huán)遍歷)
    for (int i = 0; i < a.Length; i++)
    {
        Console.WriteLine(a[i]);
    }
}
// 場景2:params參數(shù)+普通參數(shù)(params必須在最后)
public static void Test2(int a,int b,params int[] c)// a =10 ,b=20;
{
    Console.WriteLine(c[0]);//30(訪問params數(shù)組的第一個元素)
}

? 必記要點(核心,標紅重點):

  • params關(guān)鍵字必須修飾數(shù)組類型(如int[]、string[]),不能修飾單個值類型(如int、string),否則報錯。

  • 一個方法中只能有一個params參數(shù),不能同時定義多個params參數(shù)(如public static void Test(params int[] a, params string[] b) 報錯)。

  • params參數(shù)必須是方法的最后一個參數(shù)(如Test2中,params int[] c在int a、int b之后),放在前面會報錯。

2. 方法調(diào)用語法(必記,結(jié)合原代碼)

static void Main(string[] args)
{
    // 場景1:調(diào)用僅params參數(shù)的方法(傳遞任意數(shù)量的同類型參數(shù))
    Test1(1);//a.Length的長度1(傳遞1個參數(shù))
    Test1(1, 2);//a.Length=2(傳遞2個參數(shù))
    Test1(1, 2,4,4,4,4,4,4,4,4,44);//a.Length=11(傳遞11個參數(shù))
    Test1();//允許傳遞0個參數(shù),此時a.Length=0(不報錯)
    // 場景2:調(diào)用params+普通參數(shù)的方法(普通參數(shù)必須按順序傳遞,params參數(shù)在最后)
    Test2(10, 20, 30, 40, 50); // a=10,b=20,c數(shù)組存儲30、40、50(c.Length=3)
}

? 必記要點:

  • 調(diào)用時,無需手動創(chuàng)建數(shù)組,直接傳遞任意數(shù)量的同類型參數(shù)即可(編譯器會自動將這些參數(shù)封裝成數(shù)組)。

  • 允許傳遞0個參數(shù)(此時params數(shù)組長度為0,遍歷數(shù)組時不會報錯,只是不執(zhí)行循環(huán))。

  • 若方法有普通參數(shù)+params參數(shù),需先傳遞普通參數(shù)(按定義順序),再傳遞params對應(yīng)的不定數(shù)量參數(shù)。

三、params參數(shù)的核心用法(必記,結(jié)合原代碼)

1. 訪問參數(shù)的方式(必考)

public static void Test1(params int[] a)
{
    // 1. 獲取參數(shù)個數(shù)(數(shù)組長度)
    Console.WriteLine(a.Length); // 如傳遞11個參數(shù),輸出11
    // 2. 訪問單個參數(shù)(通過下標,下標從0開始)
    Console.WriteLine(a[0]); // 訪問第一個參數(shù)(下標0)
    Console.WriteLine(a[a.Length-1]);// 訪問最后一個參數(shù)(下標=長度-1)
    // 3. 遍歷所有參數(shù)(最常用,取出所有傳遞的參數(shù))
    for (int i = 0; i < a.Length; i++)
    {
        Console.WriteLine(a[i]); // 依次輸出每個參數(shù)
    }
}
  • 易錯重點:數(shù)組下標從0開始,最大下標 = 數(shù)組長度 - 1(如a.Length=11,最大下標是10,訪問a[11]會報錯)。

2. params+普通參數(shù)的調(diào)用邏輯(結(jié)合Test2)

public static void Test2(int a,int b,params int[] c)
{
    Console.WriteLine(c[0]);//30
}
// 調(diào)用:Test2(10, 20, 30, 40, 50);
// 邏輯解析:
// 前兩個參數(shù)(10、20)對應(yīng)普通參數(shù)a、b,后續(xù)所有參數(shù)(30、40、50)封裝到c數(shù)組中
// c數(shù)組內(nèi)容:[30,40,50],c[0]就是30,所以輸出30

四、params參數(shù)必背規(guī)則(直接默寫,考試高頻)

  • 1. params必須修飾數(shù)組類型(如int[]、string[]),不能修飾單個值類型;

  • 2. 一個方法只能有一個params參數(shù);

  • 3. params參數(shù)必須是方法的最后一個參數(shù)

  • 4. 調(diào)用時,可傳遞0個、1個或多個同類型參數(shù),無需手動創(chuàng)建數(shù)組;

  • 5. 訪問params參數(shù)的元素,通過“數(shù)組名[下標]”,下標從0開始,最大下標=數(shù)組長度-1;

  • 6. params參數(shù)本質(zhì)是數(shù)組,可使用數(shù)組的所有屬性(如Length)和方法。

五、高頻易錯點(避坑專用,必記,對應(yīng)報錯場景)

  • 易錯1:params修飾非數(shù)組類型(如public static void Test(params int a))→ 語法報錯;

  • 易錯2:一個方法定義多個params參數(shù)(如public static void Test(params int[] a, params string[] b))→ 報錯;

  • 易錯3:params參數(shù)不是方法的最后一個參數(shù)(如public static void Test(params int[] a, int b))→ 報錯;

  • 易錯4:訪問params數(shù)組時,下標超出范圍(如a.Length=2,訪問a[2])→ 數(shù)組越界報錯;

  • 易錯5:調(diào)用params+普通參數(shù)的方法時,普通參數(shù)傳遞順序錯誤(如Test2(30, 10, 20),將params參數(shù)提前)→ 報錯;

  • 易錯6:誤以為params參數(shù)不能傳遞0個參數(shù)→ 可以傳遞0個,此時數(shù)組長度為0,遍歷不會報錯;

  • 易錯7:手動創(chuàng)建數(shù)組傳遞給params參數(shù)(如Test1(new int[]{1,2,3}))→ 語法允許,但無需手動創(chuàng)建,編譯器會自動封裝。

補充說明

所有知識點、易錯點均嚴格對應(yīng)原代碼,params參數(shù)的核心是“不定數(shù)量參數(shù)傳遞”,重點記憶“3個語法規(guī)則”(修飾數(shù)組、僅一個、在最后)和“下標訪問規(guī)則”,考試中??疾檎Z法規(guī)范和調(diào)用邏輯,結(jié)合Test1、Test2方法強化記憶,規(guī)避數(shù)組越界、參數(shù)順序錯誤等常見報錯。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • c#打包文件解壓縮的實例

    c#打包文件解壓縮的實例

    下面小編就為大家分享一篇c#打包文件解壓縮的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • c# 連接池的設(shè)置與使用

    c# 連接池的設(shè)置與使用

    這篇文章主要介紹了c# 連接池的設(shè)置與使用,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2021-01-01
  • Unity游戲開發(fā)之炸彈人游戲的實現(xiàn)

    Unity游戲開發(fā)之炸彈人游戲的實現(xiàn)

    大家小時候肯定玩過這款游戲,炸彈人也算是經(jīng)典中的經(jīng)典啦。本文將利用Unity模擬實現(xiàn)這一經(jīng)典游戲,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-03-03
  • C# Invoke,begininvoke的用法詳解

    C# Invoke,begininvoke的用法詳解

    這篇文章主要介紹了C# Invoke,begininvoke的用法詳解,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#中winform窗體實現(xiàn)注冊/登錄功能實例(DBHelper類)

    C#中winform窗體實現(xiàn)注冊/登錄功能實例(DBHelper類)

    在編寫項目時,編寫了一部分關(guān)于登錄頁面的一些代碼,下面這篇文章主要給大家介紹了關(guān)于C#中winform窗體實現(xiàn)注冊/登錄功能(DBHelper類)的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • C# dump系統(tǒng)lsass內(nèi)存和sam注冊表詳細

    C# dump系統(tǒng)lsass內(nèi)存和sam注冊表詳細

    這篇文章主要介紹了C# dump系統(tǒng)lsass內(nèi)存和sam注冊表,在這里選擇 C# 的好處是體積小,結(jié)合 loadAssembly 方便免殺,希望對讀者們有所幫助
    2021-09-09
  • C# 空值處理運算符??、?. 及其它常用符號

    C# 空值處理運算符??、?. 及其它常用符號

    本文主要介紹了C# 空值處理運算符??、?. 及其它常用符號,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11
  • C#調(diào)用CMD命令實例

    C#調(diào)用CMD命令實例

    這篇文章主要介紹了C#調(diào)用CMD命令實例本文只是給出一個比較簡單的、入門級的例子,更多高級的操作技巧請參閱相關(guān)文章,需要的朋友可以參考下
    2014-08-08
  • C#實現(xiàn)圖形路徑變換的方法

    C#實現(xiàn)圖形路徑變換的方法

    這篇文章主要介紹了C#實現(xiàn)圖形路徑變換的方法,涉及C#針對圖形路徑的相關(guān)操作技巧,需要的朋友可以參考下
    2015-06-06
  • WPF彈出帶蒙板的消息框

    WPF彈出帶蒙板的消息框

    這篇文章主要為大家詳細介紹了WPF彈出帶蒙板的消息框,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評論

沂南县| 金湖县| 台前县| 东至县| 广汉市| 赤水市| 麻城市| 长汀县| 望奎县| 大安市| 公主岭市| 化州市| 南漳县| 樟树市| 农安县| 房产| 天峻县| 思南县| 延寿县| 治多县| 鲁甸县| 濉溪县| 藁城市| 岳阳县| 曲周县| 阆中市| 兴隆县| 万州区| 凤阳县| 阳江市| 平顺县| 龙门县| 乌什县| 武义县| 东方市| 土默特右旗| 鸡东县| 凌云县| 梁平县| 平泉县| 西盟|