본문 바로가기
728x90
반응형

개발일지/C#10

C# Delegate Delegate메소드에 대한 참조 델리게이트도 하나의 데이터 형식으로 인스턴스 메소드 , 정적 메소드 모드 참조가능하다 델리게이트는 값이 아닌 “코드”자체를 넘기고 싶을때 사용한다예를 들어 어떤 데이터들을 정렬 해야 할 때 다양한 정렬 조건이 있을 수 있는데 이때 원하는 정렬 조건에 대한 메소드만 꺼내주면 된다void RunA(int i){......}위와 같이 하나의 함수가 있다고 가정하면 이 함수는 정수 하나를 파라미터로 받아들인다 이 함수를 호출하기 위해서는 다음과 같이 정수를 메서드 파라미터로 넘기면 된다int j = 1234;RunA(j);더 복잡한 경우로는 다음과 같이 클래스 객체를 넘기는 경우를 생각해 볼 수 있다void RunB(TestClass c){ .....}이 경우는 위의 int 와.. 2024. 10. 2.
C# Indexer 정의C# Indexer는 특별한 문법인 this[] 를 써서 클래스 속성(Property) 처럼 get ,set 을 정의 한다클래스 내부의 어떤 데이터를 리턴 하는지는 클래스 디자인시 필요에 따라 정하게 될것이고 리턴 데이터 타입도 여러가지로 지정할수 있다입력 파라미터인 인덱스도 여러 데이터 타입을 쓸 수 있는데 주로 int나 string 타입을 사용하여 인덱스 값을 주는 것이 일반적이다예제)int 인덱스를 받아 배열의 데이터를 찾아 정수를 리턴namespace ConsoleApp2{ class MyClass { private const int MAX = 10; private string name; // 내부 정수 .. 2024. 10. 2.
yield yieldyield 키워드는 호출자에게 컬렉션 데이터를 하나씩 리턴 할 때 사용한다흔히 Enumerator(반복자 , Iterator)라고 불리 우는 이런 기능은 집합 적 인 데이터 셋으로 부터 데이터를 하나씩 호출자에게 보내주는 역할을 한다yield는 yield return 또는 yield break 의 2가지 방식으로 사용되는데(1) yield return은 컬렉션 데이터 를 하나씩 리턴 하는데 사용되고(2) yield break는 리턴을 중지하고 Iteration 루프 를 빠져 나올 때 사용한다예제)using System;using System.Collection.Generic;class Test{ static IEnumerable GetNumber() { yield return 10; // 첫번.. 2024. 10. 1.
C#) ref C# ref 키워드ref 가 하는일ref 키워드를 이용하면 명시적으로 call by refence(참조 전달)을 할수있습니다정수 타입들은 기본적으로 매개변수로 보낼때 call by value값이 전달 되기 때문에public void ChangeNum(int num){ num = 10;}int a = 99;ChangeNum(a);Console.WriteLine(a); // a는 그대로 입니다전달하는 변수와의 관계가 끊어지게 된다참조 전달을 하게되면 매게변수로 전달한 값의 원본이 변경이 된다기본적으로 c# 메서드에 인자를 전달할때 call by value (값 전달)을 합니다.a의 값 99를 전달 하더라도 ChangeNum에서 num 으로 매개변수를 받을 때 call by value 이기 때문에 문자 .. 2024. 10. 1.
728x90
반응형