C# 예제 공부일기
-
dynamic 형을 사용하는 일반화 프로그램C# 예제 공부일기 2020. 7. 13. 19:29
C#은 강력한 형식 검사를 하는 언어이다. 앞에서 사용한 일반화 클래스에서 로 정의된 값들은 더하거나 비교하는 부분에서 컴파일 시에 에러 메시지가 나옵니다. 왜냐하면 는 사용자가 만든 클래스를 포함해서 어떠한 자료형도 올 수 있는데 이 자료들이 더하고나 비교할 수 있는 데이터인지 알 수 없기 때문이다,. 이 문제를 dynamic 키워드로 처리 가능하다. dynamic 형은 형식 검사를 컴파일 시에 하지 않고 실행한다. 실행할 때는 에 대치되는 int, double 등의 형식이 사용되고 이런 데이터들은 더하거나 비교할 수 있기 때문에 에러가 발생하지 않는다. 저장하는 데이터의 형이 int, double,float,decimal 등 어떤 숫자형 배열이라도 적용할 수 있는 메소드를 dynamic과 일반화 프로..
-
일반화 클래스(제네릭 클래스)C# 예제 공부일기 2020. 7. 13. 19:10
일반화(제네릭) 클래스는 멤버의 형을 로 표시한 클래스이다. 객체 생성 시에 그 멤버의 형이 결정된다. class MyClass { public T x; public T DoSomething(T p) {} } 클래스의 선언 형식은 위와 같다. using System; namespace CPractice { class MyClass { private T[] arr; private int count = 0; public MyClass(int length) { arr = new T[length]; count = length; } public void Insert(params T[] args) { for (int i = 0; i < args.Length; i++) arr[i] = args[i]; } public..
-
일반화 메소드 (제네릭 메소드)C# 예제 공부일기 2020. 7. 13. 18:53
일반화 프로그램은 데이터 형식을 일반화 하는 기법으로 Generic Programming이라고 한다. int 메소드를 출력하는 PrintArray(int[] a) 메소드를 만들 었는데, double 배열도 출력할 일이 생겼을 때 앞서 배운 방식으로 반환타입만 바꿔줘서 복사를 하는 방법도 있겠지만, 더 좋은 방법이 일반화 프로그램이다. 일반화 프로그램으로 만든 메소드를 일반화 메소드라고 하며 위에서 메소드 중복으로 만든 두개의 (int,double)에 대해 하나의 메소드로 처리가 가능해진다. void PrintArray(T[] a) { } //일반화 메소드 정의 여기서 사용된 T는 type이라는 의미를 갖는 기호이다. 다른 문자도 사용가능 는 int, double등의 형식으로 대치된다. using Syst..