C#/C# 교과서

[C# 교과서] 19. 함수 사용하기

서니션 2022. 12. 27. 13:39
728x90
반응형

함수 또는 메서드는 재사용을 목적으로 만든 특정 작업을 수행하는 코드 블록


함수

란 어떤 값을 받아서 그 값을 가지고 가공을 거쳐 어떤 결과값을 반환시켜주는 코드

함수는 프로그램 코드 내에서 특정한 기능을 처리하는 독립적인 하나의 단위 또는 모듈

 

내장함수 : C#이 자주 사용하는 기능을 미리 만들어서 제공하는 함수로, 특정 클래스의 함수로 표현

 

사용자 정의 함수 : 프로그래머가 필요할 때마다 새롭게 기능을 추가하여 사용하는 함수

 

함수이름();

함수이름(매개변수);

결괏값 = 함수이름(매개변수);

 

using System;

namespace codingstudy
{
    class Program
    {
        static void Main(string[] args)
        {
            Show();
        }

        static void Show()
        {
            Console.WriteLine("함수 예제");
        }
    }
}
  • 매개변수(인자, 파라미터)가 없는 함수 : 매개변수도 없고 반환값도 없는 함수 형태는 가장 단순한 형태의 함수. 함수 이름 뒤에 따라오는 괄호에 인자로 아무 값도 지정하지 않는 형태를 의미. 앞에서 사용한 함수 중에 모든 변수에 있는 값을 문자열로 변환시키는 ToStirng() 메서드처럼 빈 괄호만 있는 함수 형식.
  • 매개변수가 있는 함수 : 특정 함수에 인자 값을 1개 이상 전달하는 방식. 정수형, 실수형, 문자형, 문자열형, 개체형 등 여러 가지 데이터 형식을 인자 값으로 전달 가능
  • 반환값이 있는 함수 (결괏값이 있는 함수) : 함수의 처리 결과를 함수를 호출한 쪽으로 반환할 때는 return 키워드를 사용하여 데이터를 돌려줄 수 있음
  • 매개변수가 가변(여러 개)인 함수 : C#에서는 클래스 하나에 매개변수의 형식과 개수를 달리하여 이름이 동일한 함수를 여러 개 만들 수 있음. 이를 가리켜 함수 중복 또는 함수 오버로드라고 함.

매개변수가 있는 함수

using System;

namespace codingstudy
{
    class Program
    {
        static void Main()
        {
            Show("매개변수가 있는 함수");
        }

        static void Show(string strmsg)
        {
            Console.WriteLine(strmsg);
        }
    }
}

재귀 함수

함수에서 자기 자신을 호출하는 것을 재귀 또는 재귀 함수라고 함


함수 범위 : 전역 변수와 지역 변수

함수 내에서는 함수 범위에 있는 지역 변수를 사용하고, 함수 범위 내에 선언된 변수가 없으면 전역 변수 내에 선언된 변수를 사용

전역 변수는 언더스코어() 또는 m_ 접두사를 붙이는 경향이 있음


화살표 함수

using System;

namespace codingstudy
{
    class Program
    {
        static void Main()
        {
            Hi();
            Multiply(3,5);
        }

        static void Hi() => Console.WriteLine("안녕");
        static void Multiply(int a, int b) => Console.WriteLine(a*b);
    }
}

메소드 본문이 단순한 형태일 때는 중괄호를 생략하고 바로 화살표 연산자를 사용하여 화살표 함수로 구현 가능.


로컬 함수

로컬 함수는 함수 내에서만 사용하는 또 다른 함수를 만드는 것

특정 함수 내에서만 사용하는 또 다른 함수를 로컬 함수라고 함

using System;

namespace codingstudy
{
    class Program
    {
        static void Main()
        {
            int Add(int a, int b) => a + b;
            decimal Subtract(decimal x, decimal y) => x - y;

            Console.WriteLine($"3+5={Add(3,5)}");
            Console.WriteLine($"34.56-12.34={Subtract(34.56M,12.34M)}");
        }
    }
}

Main 메서드의 명령줄 인수

Main() 메서드의 매개변수인 string[] args는 문자열 배열

args배열은 명령 프롬프트에서 실행 파일 이름 뒤에 오는 문자열을 배열로 받아 사용할 수 있는 기능 → 명령줄 인수 : 명령줄에서 넘어오는 매개변수를 하나씩 받아 사용할 수 있음

728x90
반응형