배열에서 짝수 홀수 갯수 찾는 메서드 만드는건 생각 보다 간단하다.
여기에서 델리게이트 사용하는 방법을 적용해보고자 한다.
델리게이트 사용하는 방법이 헷깔리면 이 해당 코딩을 반복 학습하면 이해하기 쉬울 것이다.
우선 int 배열을 선언해 준다.
그리고 짝수 홀수를 콘솔클래스를 통해 출력해 줄 것이다.
우선 카운트 메서드를 작성해보자
이렇게 만들면 된다.
int 배열을 인수로 받아서 해당 배열을 foreach로 검열한뒤
if 조건문으로 짝수에서 카운트 해주면 된다.
홀수 카운드는 해당 빨간팬 부분만 다르게 해주면 갯수를 리턴할 수 있다.
이는 결국 비슷한 메서드를 두개 만드는 일을 하게 된다.
이런 코드의 낭비를 줄여주고 긴 코드에 간섭이 안생기도록 해주며 코딩 해석이 쉽게해 주는 것이
delegate 의 역할이다.
우선은 사소한 차이를 보이는 코딩을 확인해보자 !
item % 2 != 0 ;
item % 2 == 0;
이부분이다 .
이 부분을 메서드로 만들어 보자!
조건문에 들어가야 되기 때문에 불 (boolen) 형으로 만든다.
이렇게 만들었다 ODD -> 홀수 EVEN -> 짝수
두개의 매서드를 만들었다 한들 해당 불형 매서드를 사용할려면 결국엔 두 개의 Count 매서드가 필요할 것이다.
여기서 델리케이트를 사용하면 하나의 Count 매서드로도 코딩이 가능하다!
델리케이트를 선언해보자 델리게이트는 대리자 역할을 한다. 그래서 대신 일해 줄 메서드와 비슷하게 작성하면 된다.
여기서 중요한게 이 델리게이트를 어디다에 집어 넣냐 이다.
델리 게이트는 결국 메서드의 역할을 대신해서 해주는 거니까
해당 메서드를 받아 주는 메서드나 클래스에 인수로 가져와 주면 된다.
요렇게 출력하면 된다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp6
{
delegate bool DelegateTest(int a);
class Program
{
static void Main(string[] args)
{
int[] a = new int[] { 1, 23, 4, 12, 123, 4, 5, 23, 12, 5, 12, 4, 56 };
Console.WriteLine("짝수" + Count(a, IsEVEN));
Console.WriteLine("홀수" + Count(a, IsODD));
}
static int Count(int[] a, DelegateTest delegateTest)
{
int count = 0;
foreach (var item in a)
{
if (delegateTest(item) ==true)
{
count++;
}
}
return count;
}
public static bool IsODD(int a) { return a % 2 != 0; }
public static bool IsEVEN(int a) { return a % 2 == 0; }
}
}
'C#' 카테고리의 다른 글
C#-WINFORM으로 계산기 만들기 중요한 예외처리 enum 사용법 알려드립니다. (1) | 2023.03.22 |
---|---|
C# - C# 언어로 간단한 Game 만들 수 있을지 몰랐지? (0) | 2023.03.18 |
C# 개발 - TCP 네트워크 에코 시스템 모듈 프로그래밍 (0) | 2023.03.17 |
C# 문법 - 가변 매개 변수 Params 사용법에 대해 알아보자 (0) | 2023.03.16 |
C#- Winform 윈폼 기초 문법에 대해 같이 알아 봅시다. (0) | 2023.03.15 |
C# 이름이 없는 델리게이트 Anonymous Delegate 이거 어떻게 사용하는지 알려드립니다. (0) | 2023.03.13 |