[C#] 14일차 - 94. 일반화 클래스(제네릭 클래스)C#/C#200제2021. 2. 10. 18:34
Table of Contents
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A094_GenericClass
{
class MyClass<T>
{
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];
}
// 객체 arr배열의 요소를 출력
public void Print()
{
foreach (T i in arr)
Console.Write(i + " ");
Console.WriteLine();
}
//
public T AddAll()
{
T sum = default(T); // sum을 default(T)로 초기화
foreach (T item in arr)
sum = sum + (dynamic)item; // dynamic변수는 컴파일 시에 형을 체크하지 않아 에러가 나지않는다.
return sum;
}
}
class Program
{
static void Main(string[] args)
{
MyClass<int> a = new MyClass<int>(10);
MyClass<string> s = new MyClass<string>(5);
a.Insert(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
s.Insert("Tiger", "Lion", "Zebra", "Monkey", "Cow");
a.Print();
s.Print();
Console.WriteLine("a.AddAll() :" + a.AddAll());
Console.WriteLine("s.AddAll() :" + s.AddAll());
}
}
}
반응형
'C# > C#200제' 카테고리의 다른 글
[C#] 14일차 - 96. LinkedList의 구현 (0) | 2021.02.10 |
---|---|
[C#] 14일차 - 95. dynamic형을 사용하는 일반화 프로그램 (0) | 2021.02.10 |
[C#] 14일차 - 93. 일반화 메소드(제네릭 메소드) (0) | 2021.02.10 |
[C#] 13일차 - 92. 메소드 오버로딩 (0) | 2021.02.09 |
[C#] 13일차 - 91. 선택적 인수와 명명된 인수 (0) | 2021.02.09 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!