메서드(method)

함수(function)

방법?

체계성?

메서드(method)

코드를 하나로 묶어

사용할 수 있게 해주는 기능

메서드 ≒ 배열

변수를 하나로 묶어

편의성을 높이는 기능

코드를 하나로 묶어

편의성을 높이는 기능

string name1 = "";

string name2 = "";

.

.

 

=> string[] name1 = new string[3]{name1, name2, ...}

A아이디로 A가 게임 접속

A아이디로 로그인 사람 있는 지 확인

A아이디로 B가 게임 접속

A가 하던 게임 강제 종료

A아이디로 로그인 사람 있는 지 확인

예시 1

예시 2

플레이어 A가 게임에 접속

플레이어 A가 게임 종료

출력 >> "플레이어 A가 게임에 접속했습니다."

출력 >> "플레이어 A가 게임을 종료했습니다."

Console.WriteLine(string);

Console.ReadLine();

메서드

소프트웨어에서 특정 동작을 수행하는 일정 코드 부분

[반환 형식] [메서드 이름]([매개변수들])

{

    [명령...]

}

int Add(int num1, int num2)

{

    return num1 + num2

}

메서드 선언

[메서드 이름]([매개변수들])

메서드 호출

Add(1, 2)

Add(a, b) // a, b는 int형 변수

코드

X = Console.WriteLine();

반환형식이 없다!

[반환 형식] [메서드 이름]([매개변수들])

{

    [명령...]

}

void [메서드 이름]([매개변수들])

{

    [명령...]

}

int Add(int a, int b)

{

    return a + b;

}

Console.WriteLine(Add(2, 5));

void PrintAddedValue(int a, int b)

{

    Console.WriteLine(a + b);

}

PrintAddedValue(2, 5);

코드

[반환 형식] [메서드 이름]([매개변수들])

{

    [명령...]

}

[메서드 이름]([매개변수들]);

반환형식 : 자료형(data type) 또는 void

예)

Console.WriteLine(string);

Add(1, 2)

array.Split(' ')

메서드 이름 : 주로 대문자로 시작

Q. 사칙연산을 하는 메서드를 각각 만들어라

더하기 : Add

빼기 : Subtract

곱하기 : Multiply

나누기 : divide

매개변수는 두 개를 받으며, 출력은 int형으로 한다.

Swap을 구현해 보자!

바꾸다

void Swap(int a, int b)

{

    a = b;

    b = a;  

}

int a = 2;

int b = 4;

Swap(a, b);

a : 4, b : 4

코드

a : 2, b : 4

a : 4, b : 2

void Swap(int a, int b)

{

    a = b;

    b = a;  

}

int a = 2;

int b = 4;

Swap(a, b);

a : 4, b : 4

코드

a : 2, b : 4

a : 4, b : 2

void Swap(int a, int b)

{

    int temp = a;

    a = b;

    b = temp;  

}

int a = 2;

int b = 4;

Swap(a, b);

a : 2, b : 4

코드

a : 4, b : 2

byte, int, float, long, struct....

값 형식(value type)

string(예외) / 배열, object(객체)...

참조 형식(reference type)

vs.

값 형식(value type)

int a = 1;

int b = 2;

Swap(a, b);

 

void Swap(int a, int b)

{

    int temp = a;

    a = b;

    b = temp;

}

a1 = 1

b1 = 2

a2 = 1

b2 = 2

temp = 1

a1 = 1

b1 = 2

a2 = 2

b2 = 1

temp = 1

a1 = 1

b1 = 2

void ChangeFirstToA(char[] array)

{

    array[0] = 'A';

}

 

char[] array = new char[3]{'a', 'b', 'c'};

ChangeFirstToA(array);

Console.WriteLine(array);

코드

값 형식을 참조 형식처럼 바꾸자!

참조형식에 의해 호출

Call By Reference

[반환 형식] [메서드 이름](ref (or) out [매개변수들])

{

    [명령...]

}

[메서드 이름](ref (or) out [매개변수들]);

void Swap(ref int a, ref int b)

{

    int temp = a;

    a = b;

    b = temp;

}

 

int a = 1;

int b = 2;

Swap(ref a, ref b);

Console.WriteLine(a + " " + b);

a : 2, b : 1

ref로 a, b를 참조 형식으로써 메서드에서 사용

코드

void Swap(out int a, out int b)

{

    int temp = a;

    a = b;

    b = temp;

}

 

int a = 1;

int b = 2;

Swap(out a, out b);

Console.WriteLine(a + " " + b);

a : 2, b : 1

out으로 a, b를 참조 형식으로써 메서드에서 사용

코드

void ChangeStrToHelloRef(ref string str)

{

   str = "hello";

}

void ChangeStrToHelloOut(out string str)

{

   str = "hello";

}

string str;

ChangeStrToHelloRef(ref string str);

ChangeStrToHelloOut(out string str);

코드

Ref

Out

값 형식의 매개변수를 참조 형식으로 호출

초기화된 변수만을

매개변수로 사용 가능

초기화 되지 않은 변수를

매개변수로 사용가능.

단, 그렇다면 메서드내에서

초기화 되어야 함.

예) 나누기 메서드

입력

 계산용 int형 변수 2개

결과용 float형 변수 1개

출력

 계산이 성공했는 지에 따른 bool

bool DivdeIfCan(int a, int b, out float result){

    if(b == 0){

        return false;

    }

    result = (float)a / b;

    return true;

}

코드

메서드(method) 메서드(method)

By qwd0214

메서드(method) 메서드(method)

  • 139