[C#] Delegate2

c# 2023. 1. 14. 22:38
728x90
/// <summary>
/// 대리자는 매개 변수와 반환 형식(시그니처)를 갖는 메서드를 캡슐화 하는 데이터 형식이다
/// 대리자는 메서드의 매개 변수와 반환 형식을 정의할 필요가 있다
/// 시그니처가 다른 함수를 참조하면 컴파일러 오류가 발생한다
/// </summary>


// [접근 한정자] delegate 반환형식 대리자이름([매개 변수]);
// 대리자 선언
public delegate void SingleStringDelegate(string dataString);

// 같은 반환형식(시그니처)를 갖는 아래 메서드 할당 가능
private static void AssignData(string dataString)
{
    string globalString = dataString;
}

// 아래 메서드도 할당 가능
private static void WriteToConsole(string dataText)
{
    Console.WriteLine(dataText);
}

// 두 메서드의 시그니처는 대리자와 일치하므로 할당가능
SingleStringDelegate delegate1 = AssignData;
SingleStringDelegate delegate2 = WriteToConsole;

// 대리자 이름은 SignleStringDelegate와 같이 Delegate로 끝내는 것이 일반적인데
// 이렇게 함으로써 대리자 이름과 메서드 이름을 구별할수 있다 (필수아님 생략가능)
728x90

'c#' 카테고리의 다른 글

[C#] Delegate 멀티캐스트  (0) 2023.01.14
[C#] Delegate3  (0) 2023.01.14
[C#] 메서드 체인  (0) 2023.01.13
[C#] 커링  (0) 2023.01.13
[C#] BinaryWriter / BinaryReader  (0) 2023.01.13
Posted by 바르마스
,