NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C# 15-1. C# 메서드의 시그니처. (Method's Signature)

    페이지 정보

    본문

    안녕하세요. 오늘은 C#의 핵심인 메서드(Method, 방법, 방식, 체계, 질서)에 대해서 알아보겠습니다. 예전엔 모든 언어의 기반이 Function으로 통칭되었던 적이 있습니다. 물론, Java가 나오면서 Method로 변경되었을 뿐 같은 의미로 사용되고 있습니다. 엄밀히 말하면 이 두가지는 약간의 차이를 가지고 있는데, 그것은 언어의 차이에서 오는 개념상 다른 부분일뿐 개발하는데 아무런 문제도 발생시키지 않습니다.

     

    인터프리터 언어인 JavaScript는 Function이라는 용어를 택했을뿐이고, 컴파일 언어인 Java와 C#은 Method를 사용합니다. 사실 언어 입장에서 보면 개념적으로 같습니다. 다만, 그 이전에 언어들이 객체지향 개념이 없었기에 캡슐화로 인해 내부 객체의 데이타에 접근하는 방법을 따로 구체화하지 않았을뿐입니다. Function은 인자로 받은 파라메터를 이용하여 어떤 연산 또는 행동(Behavior) 하는 것들을 지칭하고, Method는 객체의 어떤 행동(Behavior)을 의미합니다. 내부 정보에 Access하는 것은 Property를 이용하게 되며, 이 객체를 나타낼 수 있는 성질은 Attribue로 정의할 수 있습니다. 내용이 약간 어려울 수 있지만 앞으로 진행하게될 속성(Property)과 특성(Attribute)에 대해서 학습하게 되면 어느정도 개념적으로 명확해지리라 생각합니다. 

     

    Method

    메서드는 일련의 문을 포함하는 코드 블록으로 프로그램에서는 메서드를 호출하고 인수를 지정하여 실행합니다. C#에서 실행되는 모든 명령은 메서드의 컨텍스트에서 수행되며 Main메서드는 모든 C#프로그램의 진입점으로 CLR(Common Language Runtime)에 의해 호출됩니다.

     

    아래는 가장 기본적인 메서드를 나타냅니다.

    using System;
     
    namespace Method
    {
        class Calculator
        {
            public static int Plus(int a, int b)
            {
                return a + b;
            }
     
            public static int Minus(int a, int b)
            {
                return a - b;
            }
        }
     
        class MainApp
        {
            public static void Main()
            {
                int result = Calculator.Plus(3, 4);
                Console.WriteLine(result);
                result = Calculator.Minus(5, 2);
                Console.WriteLine(result);
            }
        }
    }

     

     

    메서드는 파라메터를 괄호()로 묶어 쉼표,로 구분합니다. 빈 괄호는 메서드에 파라메터가 없다는 의미입니다. 하지만 파라메터가 없다고 해도 괄호는 생략할 수 없습니다. 또한, 메서드는 클래스 또는 구조체에서 public(공개), private(비밀)와 같은 Access수준과 abstract(추상), sealed(봉인)와 같은 선택적 한정자, 반환 값, 메서드 이름 및 메서드 파라메터를 지정하여 선언합니다. 이러한 메서드를 생성하기 위한 규칙들을 메서드의 시그니처(Signature)라고 합니다.

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.