Programming 324

C#/ 대리자(델리게이트, delegate)k

# 근데 델리게이트를 왜 쓰지? 원래 함수를 파라미터로 보내기 위해서는 함수의 리턴 값을 보내야 한다. 근데; 함수를 각각 값을 받아서 변수를 할당해서 보내기에는... 코드가 복잡해진다! 그래서 말 그대로 대리자라는 것을 만들어 함수를 대리하게 만들어 사용한다. 이게 가장 큰 이유. # 이해를 위한 추가 델리게이트 정리 자료 class Program { static void Main(string[] args) { new Program().Test(); } // 1. // 델리게이트 대상이 될 어떤 메서드1 int StringToInt(string s) { return int.Parse(s); } // 델리게이트 대상이 될 어떤 메서드2 int StringToInt2(string s) { return in..

C#/ 일반화(generic), 인덱서(indexer)k

# 근데 제네릭을 왜 쓰지? 1. 데이타 요소 타입을 확정하지 않고 이 데이타 타입 자체를 타입파라미터(Type Parameter)로 받아들이도록 클래스를 정의한다.(유연성) 2. 이렇게 정의된 클래스 즉 C# 제네릭 타입을 사용할 때는 클래스명과 함께 구체적인 데이타 타입을 함께 지정해 주게 된다.(타입안정성) 3. 이렇게 하면 일부 상이한 데이타 타입 때문에 여러 개의 클래스들을 따로 만들 필요가 없어지게 된다.(코드 재사용성) 4. C# 제네릭은 이렇게 클래스 이외에도 인터페이스나 메서드에도 적용될 수 있다. (확장성) # 이해를 위한 추가 예제 코드 *System.Collections.Generic 네임스페이스에 있는 모든 자료구조 관련 클래스들은 제네릭 타입이다. 컬렉션에서 많이 사용되는 것으로..

C#/ 클래스(class)와 구조체(struct)

C#에서 클래스(Class)와 구조체(Struct)는 데이터와 해당 데이터를 처리하는 메서드를 포함하는 사용자 정의 타입(UDT)입니다. 그러나 클래스와 구조체는 몇 가지 중요한 차이점이 있습니다. 아래에서 클래스와 구조체의 개념과 주요 차이점을 비교 설명해드리겠습니다: 클래스(Class): - 클래스는 참조 형식(Reference Type)입니다. - 클래스는 상속을 지원하며, 단일 상속만 가능합니다. - 클래스는 힙(heap) 메모리에 인스턴스가 할당됩니다. - 클래스는 널(null) 값을 가질 수 있으며, 인스턴스는 다른 객체와 공유될 수 있습니다. - 클래스의 인스턴스는 동적으로 생성하고 해제할 수 있습니다. - 클래스는 생성자(constructor)를 사용하여 초기화될 수 있으며, 소멸자(des..