PROGRAMING/C#

일반화 메소드

평온평온 2018. 1. 17. 22:55
반응형

일반화 메소드


일반화 메소드 ( Generic Method )는 이름처럼 (데이터 형식을) 일반화한 메소드입니다 일반화 메소드가 어떤 장점이 있는지 알아보겠습니다. 사용방법은 일반화 메소드와 일반 메소드는 비슷하게 사용을 합니다. 


한정자 반환형식 메소드이름<형식매개 변수> ( 매개 변수 목록 ) 

{

//

}


위와 같이 사용을 하게 됩니다. 문법적으로는 크게 어려운것이 없습니다. 


namespace ConsoleApp9

{

    class Program

    {

        static void Main(string[] args)

        {

            int[] _Member =  { 1, 2, 3, 4, 5, 6 };

            int[] _Copy = new int[_Member.Length];


            CopyArry<int>(_Member, _Copy);



            foreach (int i in _Copy)

            {

                Console.WriteLine(i);

            }



            string[] StringSource = new string[] { "K", "I", "M" };

            string[] StringTarget = new string[StringSource.Length];


            CopyArry<string>(StringSource, StringTarget);


            foreach (string _string in StringTarget)

                Console.WriteLine(_string);

        }`



        static void CopyArry<T> (T[] _Source, T[] _Target)

        {

            for (int i = 0; i < _Source.Length; i++)

                _Target[i] = _Source[i];

        }

    }

}


T는 C#에서 지원하는 형식이 아님을 잘알고 있습니다. 그래서 T가 어떤 형식인지를 알려주기 위해 CopyArry<int>라고 알려 주게 됩니다. 그러면 컴파일러는 알아서 

아 !!~ Int형이구나 하고 알아서 Int형으로 처리를 하게 되는 것입니다. 


간단하게 사용을 하고 있지만, 꺽쇠 괄로만으로도 많은 코딩량을 줄일수도 있고, 유지보수 적인 측면에서 많은 도움이 될수 있습니다. 

예를 들면 단위에 따라서 함수를 여러개 Overload시켜서 사용을 하는 경우도 있지만, 일반화 메소드를 사용하게 되면 간단하게 처리가 될수가 있습니다. 



반응형