C# Method

#1. 메소드 기초


메소드(Method)는 객체 지향 프로그래밍(OOP)언어에서 주로 사용하는 용어로,C나 C++에는 주로 함수(Function)라고 불렸다. 그의미에 차이는 분명 존재하지만 큰 틀에서의 의미는 메소드나 함수나 같다고 보면 된다.


c,c++에서의 함수와 마찬가지로 메소드 역시 메소드를 선언하고 정의하고 호출함으로써 메소드를 사용할 수 있는데, c#에서의 메소드는 c,c++의 함수와는 조금씩 사용하는 방법이 다르다.

class ClassName
{
    한정자 반환형 메소드이름(매개변수)
   {
      코드;

      return 메소드결과; => 반환형이 void인 경우에는 없어도됨

   }

}

위에 메소드 선언방식을 보면 알 수 있겠지만, c#에서의 메소드는 무조건 클래스 안에서 선언을 해야한다. 객체 지향 프로그래밍에서는 코드 내의 모든 것을 객체로 표현한다.  각 객체는 자신만의 속성(데이터)과 기능(메소드)를 갖고 있다. 클래스나 객체에 대해서는 클래스 장에서 보도록 하겠다.


간단하게 여기서는 인자를 두 개를 넘겨서 더한 다음 그 값을 반환하는 메소드를 만들어봤다.


namespace CSharp
{
   class Calulator
   {
      public static int plus(int a, int b)
      {
       return a+b;
      }

   }
   class Program
  {
     static void Main(string[] args)
     {
        int nNum1=10;
        int nNum2=20;

       Console.WriteLine(Calculator.Plus(nNum1, nNum2));

     }
  }

}


#2. return 키워드


return은 '반환' 이라는 뜻으로 메소드의 결과 값을 해당 반환형으로 반환하는 것을 말한다.
위에 Plus()메소드를 참고하면서 보도록 한다.

반환형은 int로 되어 있고 매개 변수 a,b도 int형으로 되어있다. 당연히 return할때도 int형으로 반환을 시켜줘야한다. 만약 반환형과 반환값이 서로 형이 다르면 ?형변환을 해주는 방식으로 데이터의 손실을 방지하는 방법이 필요하다.

return은 메소드 안에 여러개가 있을 수 있는데, 코드가 실행을 하다가 return을 만나게 되면  바로 그 메소드를 탈출하게 된다. 여러가지 반환 방법이 있을 경우 if같은 조건문을 통해서 반환 값을 달리 주는 방법을 사용할수도 있다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{

    class geniustest
    {
        public static string genius(char answer)
        {
            if (answer == 'Y' || answer == 'y')
            {
                return "Genius";
            }
            else
            {
                return "Fool";
            }

        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            char chAnswer;

            Console.Write("당신은 천재입니까?(맞으면 y or Y):");
            chAnswer= char.Parse(Console.ReadLine());

            Console.WriteLine( geniustest.genius(chAnswer));
        }
    }
}

#3. 재귀 메소드


재귀 메소드(Recursive Method)는 메소드가 자신을 스스로 호출하는 것을 말한다. c,c++에서는 재귀함수라고 불렸다. 재귀의 대표적인 예제인 피보나치 수열에서 원하는 번째의 피보나치 수를 출력하는 예제를 들겠다.

 class Program
    {
        static int Fibonacci(int n)
        {
            if (n < 2)
                return n;
            else
            {
                return Fibonacci(n - 1) + Fibonacci(n - 2);
            }

        }
        static void Main(string[] args)
        {
            //char chAnswer;

           /* Console.Write("당신은 천재입니까?(맞으면 y or Y):");
            chAnswer= char.Parse(Console.ReadLine());

            Console.WriteLine( geniustest.genius(chAnswer));
            */
            Console.WriteLine("10번째 피보나치 수 : [0]"+ Fibonacci(10));
        }
    }

 ㅡ 참고 자료 ㅡ

뇌를 자극하는 c# 4.0 프로그래밍

MSDN:
http://msdn.microsoft.com/ko-kr/library/

Post a Comment

다음 이전