본문 바로가기
C#/C# 강의 정리

C# 함수

by 민트코코넛 2020. 12. 27.
728x90
반응형

§ Method §

◈ 기본형

class Basic
{
    public static int basic_A( int a, int b )
    {
    	return a + b; 
    // 일반 함수
    }

    static void Main(string[] args)
    {
    // 메인 함수
    }
}

 

◈ 접근 제한 수준 : Static - Public - Private

◈ 구분

- Static : 정적 함수, static으로 선언된 함수끼리만 호출 가능.

- Public : 접근 제한 無, 전체 공유 및 참조 가능.   외부 class에서 접근시, 보호 수준을 해제한다.

- Private : 접근 제한 有, 외부로부터 보호받아야 하는 중요 함수의 경우에 사용한다.

class Calcurator
{
    public static int Add( int a, int b )   // return 값이 int형인것   // parameter 
    // public : 접근제한자, 접근한정자
    // 외부 class에서 접근할때, public이 선언된 class에 접근이 가능하도록 전체 공유하는 것
    // 보호 수준 해제 용도
    {
    	return a + b;   // int형으로 값 반환  
    }
}
    
class MyClass
{
    static void Main(string[] args)     // main method line
    // static : 정적. static은 static만 호출 가능
    {
    	int c = Calcurator.Add(3, 4);
    	Console.WriteLine(c);
    }
}

 

§ Method 생성 §

- 메인 함수에서 각 변수에 지정된 값을 할당하고, 해당 값을 변경해보자.

  1. 일반 함수 swap을 생성하고, 메인 함수에서 생성한 변수들을 참조 형식으로 입력

  2. 다른 변수의 값 하나를 임시로 저장해 줄 임시 변수 생성하고, 기존 변수 중 하나의 값을 대입해서 빈 공간 생성

  3. 위의 방법으로 생성된 빈 공간에 또 다른 변수의 값 대입

  4. 2~3의 과정을 반복하여 각각의 지정된 값이 다른 변수에 옮겨졌는지 한 번 확인

  5. swap함수를 메인함수에서 호출해서, 제대로 치환됬는지 확인한다.

class MyClass
{
    static void swap( ref int a, ref int b, ref int c, ref int d)
    {
    	int e = a;  // 임시 저장 변수 생성
        a = b;
        b = c;
        c = d;
        d = e;
        Console.WriteLine("<Middle> a : {0}, b : {1}, c : {2}, d : {3}", a, b, c, d);
    }
    static void Main(string[] args)
    {
    	int a = 1;
        int b = 2;
        int c = 3;
        int d = 4;
        Console.WriteLine("<Before> a : {0}, b : {1}", a, b);
        Console.WriteLine($"<Before> a : {a}, b : {b}, c: {c}, d: {d}");
        
        swap(a, b);
        swap(ref a, ref b, ref c, ref d); // 참조 선언
        Console.WriteLine($"<After> a : {a}, b : {b}, c : {c}, d : {d}"); 
    }
}
728x90

'C# > C# 강의 정리' 카테고리의 다른 글

C# 제어문  (0) 2020.12.27
C# 배열  (0) 2020.12.27
C# mutable type, immutable type  (0) 2020.12.27
C# 문자열  (0) 2020.12.27
C# 연산자  (0) 2020.12.25