반응형

* C# Params 키워드를 이용한 가변 전달 인자 예제...

 

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CSharp_Params
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void ParamsEx(string strTmp, params string[] sParam)
        {

            lbList.Items.Add(strTmp);

            /*
             * 1 번째 방법
            foreach (string s in sParam)
            {
                lbList.Items.Add(s);
            }
            */

            //2번째 방법
            for (int iCount = 0; iCount < sParam.Length; iCount++)
            {
                lbList.Items.Add(sParam[iCount]);
            }

        }


        private void button1_Click(object sender, EventArgs e)
        {
            lbList.Items.Clear();

            //1
            ParamsEx("TEST1", "1");

            lbList.Items.Add("=================");

            //2
            ParamsEx("TEST2", "1", "12");

            lbList.Items.Add("=================");

            //3
            ParamsEx("TEST3", "1", "12","123");

            lbList.Items.Add("=================");

            //4
            ParamsEx("TEST4", "1", "12", "123","1234");

            lbList.Items.Add("=================");

            //5
            ParamsEx("TEST5", "1", "12", "123","12345");
        }
    }
}

* 위 ParamsEx 함수에서 보듯이 두번째 전달 인자에 params 키워드를 써서 가변 전달 인자로 받고 있습니다.

  아래의 그림과 같이 첫번째 전달 인자 이후 두번째 부턴 꼭 함수 오버로딩 된 듯한 형태로 나타 납니다.

 

  => 함수 오버로딩 : 간략히 같은 이름의 함수가 전달 인자 및 리턴 인자만 다른 형태

                            Ex) void ParamsEx(string strTmp, string s1)

                                void ParamsEx(string strTmp, strgin s1, string s2)

                                void ParamsEx(string strTmp, strgin s1, string s2, s

 

                                위 예제 처럼 함수 오버로딩 하면 아래의 그림 처럼 함수 호출이 되겠습니다.

 

* 또한 parmas 키워드 사용 시 주의 사항으로는 반드시 맨 마지막 전달 인자로 와야 한다는 것!!!!

  아래의 그림 참조

 

* 예제 결과

 

반응형

+ Recent posts