반응형
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp26
{
class MyClass<T>
{
private T[] ts;
private int count = 0;
public MyClass(int length)
{
ts = new T[length];
count = length;
}
public void Insert(params T[] args)
{
for (int i = 0; i < args.Length; i++)
{
ts[i] = args[i];
}
}
public void Print()
{
foreach (T item in ts)
{
Console.Write(item);
Console.WriteLine();
}
}
public T AddAll()
{
T sum = default(T);
foreach (T item in ts)
{
sum = sum +(dynamic) item;
//제네릭에서는 덧셈이 불가능 하다 (dynamic)변수는 컴파일시 형을 체크 하지 않는다 ,
}
return sum;
}
}
class Program
{
static void Main(string[] args)
{
MyClass<int> myClass = new MyClass<int>(10);
MyClass<string> myClass1 = new MyClass<string>(5);
myClass.Insert(1,2,3,4,5,6,7,8,9,10);
myClass1.Insert("Tiger", "Lion");
myClass.Print();
myClass1.Print();
Console.WriteLine(myClass.AddAll());
Console.WriteLine();
}
}
}
반응형