C# 入門 & 実践 / C sharp

4-2. 配列 params キーワード


配列を作成しない場合でも params を使うとOK。
params 有り無しを比較してみる。

    class Tester
    {
        static void Main()
        {
            Tester t = new Tester();

            int[] points = { 1, 2, 3, 4, 5 };
            // OK
            t.LoopPoints(points);
            // NG
            // params キーワードがないので
            // t.LoopPoints(9,8,7);

            // OK
            // params があるのでそのまま利用できる!
            t.ParamsLoopPoints(9,8,7);
        }

        public void LoopPoints(int[] points)
        {
            foreach (int p in points)
            {
                Console.WriteLine("{0}", p.ToString());
            }

        }
        public void ParamsLoopPoints( params int[] points)
        {
            foreach (int p in points)
            {
                Console.WriteLine("{0}", p.ToString());
            }

        }

    }


クラスの配列を引数に利用。
こちらは、配列、インスタンスが必要なので params はあまり意味ない。
    class Tester
    {
        static void Main()
        {
            Player[] players = new Player[12];
            // この段階では、インスタンスは生成されていない。
            // 配列分インスタンスを生成
            for (int i = 0; i < players.Length; i++)
            {
                players[i] = new Player("Mr. " + i.ToString(), i * 5);
            }

            // 配列をメソッドに渡す!
            Tester t = new Tester();
            t.LoopPlayers(players);

        }
        // 引数に配列を使用!
        public void LoopPlayers( Player[] players )
        {
            foreach (Player p in players)
            {
                p.PrintPoint();
            }
               
        }

    }




4-1. 配列 System.Array « 4. C# 入門 Level 2 » 4-3. 配列 多次元配列


C# 入門 & 実践 / C sharp