일반화 프로그래밍
이번엔 일반화 클래스를 작성해봄으로 인해서 데이터 형식을 일반화해보는 연습을 해보겠습니다.
코드
class MyClass<T> {
T[] array;
public MyClass() {
array = new T[3];
}
public T this[int index] {
get {
return array[index];
}
set {
if(index >= array.Length) {
Array.Resize<T>(ref array, index + 1);
Console.WriteLine($"Array Resized : {array.Length}");
}
array[index] = value;
}
}
public int Length {
get {
return array.Length;
}
}
}
class Program {
static void Main(string[] args) {
MyClass<string> str_list = new MyClass<string>();
str_list[0] = "하나";
str_list[1] = "둘";
str_list[2] = "셋";
str_list[3] = "넷";
str_list[4] = "다섯";
for (int i = 0; i < str_list.Length; i++) {
Console.WriteLine(str_list[i]);
}
MyClass<int> int_list = new MyClass<int>();
int_list[0] = 1;
int_list[1] = 2;
int_list[2] = 3;
int_list[3] = 4;
int_list[4] = 5;
int_list[5] = 6;
int_list[6] = 7;
int_list[7] = 8;
for (int i = 0; i < int_list.Length; i++) {
Console.WriteLine(int_list[i]);
}
}
}
출력
정상적으로 출력되고 있습니다. 멋지네요...!