91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C# 用params定義一維參數數組

發布時間:2020-07-27 18:21:45 來源:網絡 閱讀:1432 作者:海灬未眠 欄目:編程語言

參數數組,通過關鍵字params定義參數數組,params類型參數主要用于在對數組長度未知(可變)的情況下進行函數聲明,調用時可以傳入個數不同的實參,具備很好的靈活性。


首先給出一個具體的例子介紹參數數組(params)的具體用法:

例①:

static void Main(string[] args)
{
    T('s', 'a', 'g', 'e', 'w', 'q');  //錯誤提示:T方法沒有采用6個參數的重載
    T(new object[] { 'a', 'g' ,1,"小龍女"});
}
            
public static void T(object[] c)
{
    for (int i = 0; i < c.Length; i++)
    {
        Console.Write(c[i] + " ");
    }
}

 例②:

static void Main(string[] args)
{
    T('s', 'a', 'g', 'e', 'w', 'q');  //錯誤提示:T方法沒有采用6個參數的重載
    T(new object[] { 'a', 'g' ,1,"小龍女"});
}
            
public static void T(params object[] c)
{
    for (int i = 0; i < c.Length; i++)
    {
        Console.Write(c[i] + " ");
    }
}

例①、例②對比就會發現,參數數組前不加params的話就只能傳進去一個數組;加了params之后,可以傳進數組或者傳進多個參數。


 

下面總結一些使用參數數組的注意事項:


1. 只能在一維數組上使用params關鍵字。


2. 不能重載一個只基于params關鍵字的方法。params關鍵字不構成方法的簽名的一部分。


  例③:

class Program
{
    public static void Min(int[] list)
    {
    }
        
    public static void Min( params int[] list) //編譯時錯誤提示:類型Program已經定義了一個名為Min的具有相同參數類型的成員
    {
    }
}

例③驗證了2.  



3. 不允許ref或out params數組。


 例④:

 public static void Min(out params int[] list) //編譯時錯誤提示:該參數上修飾符太多        
 {
           
 }
 
 public static void Max(ref params int[] list) //編譯時錯誤提示:該參數上修飾符太多        
 {
 
 }


4. params 數組必須是方法的最后一個參數(也就是只能有一個params數組參數)。


 例⑤:

 public static void Min( params int[] A,int[] B,int[] C)//錯誤提示:params參數必須是形參表中的最后一個參數
 {
           
 }
 
 public static void Max(int[] A,int[] B,params int[] C)
 {
 
 }


5. 編譯器會檢查并拒絕任何可能有歧義的重載。


6. 非params方法總是優先于一個params方法。也就是說,如果愿意,仍然可以為普通情況創建一個方法  的重載版本。


 例⑥:

public static void Min(int A,int B)
{
           
}
 
public static void Min(params int[] C)
{
 
}

第一個先被調用(聲明不帶params數組參數的方法,或許是一種有用的優化技術,可以避免編譯器創建和填充太多的數組)。


7. Black.Hole(黑洞),params object[] list。


 例⑦:

public static void Hole(params object[] C)
{
 
}


System.Object(object)是所有類的根,使用params object數組作為形參表中的參數來聲明一個方法,它能接受任意數量的object參數;換言之,不僅參數的數量是任意的,參數的類型也可以是任意的。所以,此方法稱為Black.Hole(黑洞)


①. 可以不向它傳遞任何參數;


②. 可以在調用它時,傳遞null作為參數;


③. 可以向它傳遞一個實際的數組。也就是說,可以人工創建本由編譯器來創建的數組;


④. 可以向它傳遞不同類型的其他任何參數,這些參數將自動封裝到一個object數組。

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴国县| 景德镇市| 宁城县| 固阳县| 呼图壁县| 溆浦县| 邳州市| 宁安市| 页游| 遂宁市| 泉州市| 金昌市| 郴州市| 鱼台县| 平顺县| 新丰县| 会宁县| 武宁县| 定南县| 明溪县| 襄垣县| 盘山县| 平定县| 建湖县| 祁门县| 蛟河市| 肃南| 寿阳县| 平潭县| 夏邑县| 双辽市| 尤溪县| 永登县| 毕节市| 荔浦县| 扶风县| 中卫市| 钦州市| 云霄县| 连州市| 宾川县|