일상일지

[C# 공부] 10. 함수 본문

개발/C# 공부

[C# 공부] 10. 함수

서호Seoho 2020. 11. 12. 22:17
반응형

 - 메소드를 선언할 때 매개변수를 선언과 동시에 초기화 해 놓으면, 메소드를 호출할 때 매개변수를 지정하지 않아도 기본값으로 자동 설정된다. >> 기본 매개변수, 선택적 인수

using System;

class Quotes
{
    static void Main()
    {

        Log("디버그");
        Log("에러", 4);

    }

    static void Log(String message, byte level = 1) //매개변수를 1로 초기화
    {
        Console.WriteLine($"{message},{level}");
    }
}

 

 - 명명된 매개변수 : 함수를 호출할 때 매개변수 이름을 직접 지정 가능하다.

using System;

class Quotes
{
    static void Main()
    {

        Sum(10, 20);
        Sum(first: 10, second: 20);
        Sum(second: 20, first: 10);

    }

    static void Sum(int first, int second)
    {
        Console.WriteLine($"{first},{second}");
    }
}

 

 - 함수 오버로드 : 매개변수를 달리해서 이름이 동일한 함수 여러 개를 정의할 수 있다. '다중 정의'라고도 한다.

using System;

class Quotes
{
    static void Main()
    {
        GetNumber(1234);
        GetNumber(1234L);

    }

    static void GetNumber(int number)
    {
        Console.WriteLine($"Int32 : {number}");
    }

    static void GetNumber(long number)
    {
        Console.WriteLine($"Int64 : {number}");
    }

}

 

 - 재귀함수 : 함수에서 함수 자신을 호출하는 것

using System;

class RecursionDemo
{
    static void Main()
    {
        Console.WriteLine(4 * 3 * 2 * 1);
        Console.WriteLine(FactorialFor(4));
        Console.WriteLine(Factorial(4));
        Console.WriteLine(Fact(4));

    }

    static int Fact(int n)
    {
        return (n > 1) ? n * Fact(n - 1) : 1;
    }

    static int Factorial(int n)
    {
        if(n==0 || n == 1)
        {
            return 1;
        }
        return n * Factorial(n - 1);
    }

    static int FactorialFor(int n)
    {
        int result = 1;
        for (int i=1;i<=n; i++)
        {
            result *= i;
        }

        return result;
    }

}

 

 - 전역변수(필드) : 클래스와 같은 레벨에서 선언된 변수. _ 또는 m_ 접두사를 붙이는 경향이 있음.

 - 지역변수 : 함수 레벨에서 선언된 변수

using System;

class RecursionDemo
{
    static String message = "전역 변수";
    static void Main()
    {
        ShowMessage();
        Console.WriteLine(message);

    }

    static void ShowMessage()
    {
        string message = "지역 변수";
        Console.WriteLine(message);
    }

}

 

 - 화살표 함수

using System;

class RecursionDemo
{

    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;

class RecursionDemo
{

    static void Main()
    {
        void Display(String text)
        {
            Console.WriteLine(text);
        }

        Display("로컬 함수");
    }

}

 

 

반응형

'개발 > C# 공부' 카테고리의 다른 글

[C# 공부] 9. 배열, 함수  (0) 2020.11.02
[C# 공부] 8. 반복문  (0) 2020.10.25
[C# 공부] 7. if 문  (0) 2020.10.10
[C# 공부] 6. 제어문  (0) 2020.09.27
[C# 공부] 5. 연산자  (0) 2020.09.19
Comments