Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีกำหนด Param Arrays (Parameter Arrays) ใน C#

Params Keyword ใช้เมื่อไม่ทราบจำนวนอาร์กิวเมนต์ล่วงหน้า ทำให้ส่งได้ทั้ง Array และค่าเดี่ยวๆ

Syntax

public int AddElements(params int[] numbers) { }

โค้ดตัวอย่างเต็ม

using System;

namespace Program
{
    class ParamArray
    {
        public int AddElements(params int[] arr)
        {
            int sum = 0;
            foreach (int i in arr)
                sum += i;
            return sum;
        }
    }
    
    class Demo
    {
        static void Main(string[] args)
        {
            ParamArray app = new ParamArray();
            
            // ส่งค่าเดี่ยวๆ
            int sum = app.AddElements(300, 250, 350, 600, 120);
            Console.WriteLine("The sum is: {0}", sum); // 1620
            
            // ส่ง Array เข้าไปได้ด้วย
            int[] nums = { 1, 2, 3 };
            Console.WriteLine(app.AddElements(nums)); // 6
            
            // ส่งไม่ได้เลย (ได้ Empty Array)
            Console.WriteLine(app.AddElements()); // 0
            
            Console.ReadKey();
        }
    }
}

ผลลัพธ์

The sum is: 1620
6
0

กฎของ params

  • ต้องเป็นพารามิเตอร์ ตัวสุดท้าย เท่านั้น
  • มีได้ เพียงหนึ่ง ต่อเมธอด
  • Type ต้องเป็น Single-dimensional Array
  • Caller สามารถส่ง: ค่าตัวแปร, Array, หรือ ไม่ส่งเลย

Params กับ IEnumerable (C# 13+ / .NET 9+)

// รองรับ IEnumerable ได้แล้ว (ไม่จำเป็นต้องเป็น Array)
public void Process(params IEnumerable<int> numbers) { }