본문 바로가기

.NET/C#

C# 메소드

728x90
반응형

메소드에 대해서 간단히 알아 볼까 합니다~

메소드는 C,C++에서의 함수와 동일한 기능을 한다고 할 수 있습니다. 실행물의 집합이라고도 할 수 있죠.

물론 메소드의 재사용이 가능 합니다. 모든 기능이 다른 언어의 함수와 똑같다는걸 알 수가 있죠.

메소드의 사용을 위한 방법을 알아 보겠습니다.

우선 메소드를 사용하기 위해서는 정의와 호출이 있어야 합니다.

정의는 메소드를 만드는 것이고 호출은 사용을 하는 것이지요

결과형 메소드이름(전달인자)
{
     실행문
}

메소드는 위와 같은 형식으로 만들어져 있습니다.

C#은 메소드의 집합이라고도 할 수 있습니다. 클래스라는 객체 안에 수많은 메소드와 필드들이 들어가 있으니깐요~

메소드에 보면 return 이라는 걸 볼 수가 있는데 이것은 메소드의 실행을 종료하고 지정된 값을 호출한 영역으로 전송하는 기능을 하는 것입니다.

메소드의 전달인자의 종류는 3가지로 나눌 수 있습니다. in, in-out, out입니다. 하나하나 살펴볼까요

in : 함수로만 데이터가 들어간다. default
in-out : 데이터의 입출력이 자유롭다. ref
out : 데이터를 입력 받을 수 없고 처리 된 데이터를 보내줄 수 있다. out

또한 메소드는 오버로딩이 가능 합니다. 단 결과형의 종류로는 오버로딩 할 수 없고 전달인자의 형이나 갯수로 오버로딩 할 수 있습니다. 저는 예전에 결과형으로 오버로딩 하고는 왜 안되냐고 날리브루스를 친적도 ㅎㄷㄷ

또한 가변인자로 선언이 가능 한데요.
가변인자 : params를 이용하여 전달인자 선언 예) static void func(params int [] x)

네 간단히 메소드의 대해서 알아 보았는데요 좀 이해가 가셨는지요? 안되셨다고요? ㅜㅜ

그럼 구현을 통해서 알아 보도록 할게요~~

    1 using System;

    2 using System.Collections.Generic;

    3 using System.Linq;

    4 using System.Text;

    5 

    6 namespace DrawBox

    7 {

    8     class Program

    9     {

   10         static void Main(string[] args)

   11         {

   12             Console.Write("박스그리기에 사용할 문자 입력 : ");

   13             string unit = Console.ReadLine();

   14             int width = InputInt("박스의 넓이");

   15             int height = InputInt("박스의 높이");

   16             DrawBox(unit, width, height);

   17         }

   18 

   19         private static int InputInt(string message)

   20         {

   21             Console.Write(message + " : ");

   22             int data = int.Parse(Console.ReadLine());

   23             return data;

   24         }

   25 

   26         private static void DrawBox(string unit, int width, int height)

   27         {

   28             for (int y = 0; y < height; y++)

   29             {

   30                 for (int x = 0; x < width; x++)

   31                 {

   32                     if (x == 0 || y == 0 || x == width - 1 || y == height - 1)

   33                     {

   34                         Console.Write(unit);

   35                     }

   36                     else

   37                     {

   38                         Console.Write(" ");

   39                     }

   40                 }

   41                 Console.WriteLine();

   42             }

   43         }

   44     }

   45 }

메인 메소드, InputInt, DrawBox 메소드로 구성 되어 있는 것을 볼수가 있습니다. 메인에서는 출력할 문자 입력 받는것을 제외하고는 다른 메소드들을 호출만 하고 있습니다.
처음 InputInt 메소드는 박스의 넓이와 높이를 입력 받는 메소드입니다.

DrawBox 메소드는 입력받은 문자와 넓이 높이를 이용하여 실제로 박스를 그리는 기능을 하는 메소드 입니다.
실제 실행화면은 다음과 같죠~


보시는 바와 같이 메소드는 만들어 두기만 하면 쉽게 그 메소드를 호출해서 쓸 수 있습니다. 만약 DrawBox 메소드가 다른 곳에서 필요하다면 가져다 쓰기만 하면 되겠지요. 메소드는 자주 쓰이고 다른 곳에서 다시 쓰일 수 있고 그런 코드를 뽑아서 만들어 둔 하나의 코드일 뿐입니다. 메소드나 클래스의 대해 어렵다는 생각은 지워버리시고 부딪혀 보세요!!
그럼 돌파구가 보일 것이고 그 녀석들을 정복할 수 있을 겁니다~

허접한 설명 봐주신 분들께 정말 감사드리고요~ ^^

앞으로 더 좋은 자료를 올릴 수 있도록 노력하겠습니다~~

감사합니다~(--)(__)

728x90
반응형

'.NET > C#' 카테고리의 다른 글

Class(3)  (0) 2009.12.17
Class(2)  (0) 2009.12.16
Class(1)  (0) 2009.12.16
C# enum, struct  (0) 2009.12.16
C# Array 에 대해서...  (2) 2009.12.16
C# 반복문  (0) 2009.12.15
C# 성적 관리 프로그램(단순 학점 부여)  (0) 2009.12.15
C# 기초 계산기  (0) 2009.12.15
C# 타입  (0) 2009.12.15
C# value타입 vs Reference타입  (2) 2009.12.15