728x90
반응형
[예제1]
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace ConsoleApp1
{
class Program
{
static void f1(int a)
{
int b;
b = a;
WriteLine(a + " " + b);
}
static void f1(string a)
{
string b;
b = a;
WriteLine(a + " " + b);
}
class Tiger { }
static void f1(Tiger a)
{
Tiger b;
b = a;
WriteLine(a + " " + b);
}
static void Main(string[] args)
{
f1(10);
f1("호랑이");
f1(new Tiger());
}
}
}
[예제2]
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace ConsoleApp1
{
class Program
{
static void f1(int a)
{
int b;
b = a;
WriteLine(a + " " + b);
}
static void f1(string a)
{
string b;
b = a;
WriteLine(a + " " + b);
}
class Tiger { }
static void f1(Tiger a)
{
Tiger b;
b = a;
WriteLine(a + " " + b);
// 제네릭을 사용하는 방법
// f2<T> == f2<향식매개변수>
}
static void f2<T>(T a)
{
T b;
b = a;
WriteLine(a + " " + b);
// T[] ar = new T[10];
}
static void Main(string[] args)
{
f1(10);
f1("호랑이");
f1(new Tiger());
f2<int>(10);
f2<string>("호랑이");
f2<Tiger>(new Tiger());
Tiger t = new Tiger();
f2<Tiger>(t);
}
}
}
[예제3]
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace ConsoleApp1
{
class Program
{
// dest(=target) = destination(받는놈), src(=original) = source(주는놈)
// 함수 혹은 클래스는 형식 매개변수를 선언한다.
// 함수 호출시에 타입을 명시하여 호출(함수) 혹은 생성(클래스)한다.
static void copy<T>(T[] dest, T[] src)
{
for (int i = 0; i < src.Length; i++)
{
dest[i] = src[i];
}
}
static void Main(string[] args)
{
int[] ar = { 10, 20, 30 };
int[] br = new int[ar.Length];
copy(br, ar);
foreach(var item in br)
{
Write(item + " ");
}WriteLine();
string[] cr = { "호랑이", "코끼리", "독수리" };
string[] dr = new string[cr.Length];
copy<string>(dr, cr);
foreach(var item in dr)
{
Write(item + " ");
}WriteLine();
}
}
}
728x90
반응형
'Education > Edu | .net' 카테고리의 다른 글
# 29.2) [C#] 문법12 (0) | 2021.02.24 |
---|---|
# 29.1) [C#] 문법12 (delegate) (0) | 2021.02.24 |
# 28.1) [C#] 문법10 (0) | 2021.02.23 |
[C# 언어 3강] 데이터형 (5/5) 값 형식과 참조 형식, 정리 (0) | 2021.02.23 |
# 27) [C#] 문법9 (array) (0) | 2021.02.22 |