Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- unity3dservival
- Unity
- 시샵
- 유니티3dui
- unity공부
- c#프로그래머스기초문법
- 오블완
- 유니티게임만들기
- c# 백준
- 유니티상호작용
- C++문법
- c#기초문법
- 시샵문법
- c#기본문법
- 유니티서바이벌게임만들기
- 유니티
- 스파르타
- c#코딩기초트레이닝
- unity게임만들기
- c# c#프로그래머스
- c#
- 유니티공부
- 티스토리챌린지
- C#문법
- unity게임
- unity3d게임만들기
- c#코테
- unity3d
- c#문제
- 스파르타코딩클럽
Archives
- Today
- Total
나 개발자 진짜 되냐?
[ C# 기본 문법 17 ] 제너릭 본문
반응형
C#에서 사용되는
고급 문법 및 기능에 대해 설명하려고 한다!
간단하게 알아보자!
🌟 제너릭 🌟
클래스나 메서드를 일반화시켜 다양한 자료형에 대응할 수 있는 기능
즉 코드는 하나고
다양한 자료형에 사용한다는 의미!
그래서 그런지
코드의 재사용성을 높일 수 있다!
<T >를 사용
그래서 <T >를 쓸 때 뒤에
구체적인 자료형을 야무지게 넣어주어야 한다.
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Metrics;
namespace ConsoleApp1
{
internal class Program
{
class Stack<T>
{
private T[] elements; // T는 밑에서 int로 썼기 때문에 int로 바뀐 친구 하나가 있다.
private int top;
public Stack() //초기화를 위해 생성자를 만들어 준다.
{
elements = new T[100];
top = 0;
}
//스택이기 때문에 push, pop 이 있어야한다.
public void Push(T item)
{
elements[top++] = item;//++이 뒤에있어서 계산 후에 +1 이 된다.
}
public T Pop() // 제너릭이기 때문에 T라고 써야한다.
{
return elements[--top];//--가 먼저 일어난다.
}
}
static void Main(string[] args)
{
Stack<int> intStack = new Stack<int>();
intStack.Push(1);
intStack.Push(2);
intStack.Push(3);
Console.WriteLine(intStack.Pop());
}
}
}
주석으로 정리하긴 했는데
정말 어렵다.
한 개여서 그럴 수도 있으니
두 개 있는 친구 예시를 보자
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Metrics;
namespace ConsoleApp1
{
internal class Program
{
class Pair<T1, T2>
{
public T1 First { get; set; }
public T2 Second { get; set; }
public Pair(T1 first, T2 second)
{
First = first;
Second = second;
}
public void Display()
{
Console.WriteLine($"First: {First}, Second: {Second}");
}
}
static void Main(string[] args)
{
Pair<int, string> pair1 = new Pair<int, string>(1, "One");
pair1.Display();
Pair<double, bool> pair2 = new Pair<double, bool>(3.14, true);
pair2.Display();
}
}
}
///출력////
First: 1, Second: One
First: 3.14, Second: True
T로 선언해 주었던 친구들을
Main함수에서 int와 double로 사용해 주었더니!
값이 잘 나왔다!
약간 만능키인데..
어렵다
구조나 패턴을 만들 때 사용한다고 한다.
스택 만들었던 코드를
한번 더 읽어보고
흐름을 파악해 보는 연습을 해보자!
반응형
'C# 을 맛보았어요! > 문법정리를 해보았어요!' 카테고리의 다른 글
[ C# 기본 문법 19 ] 인터페이스와 열거형 (0) | 2024.09.23 |
---|---|
[ C# 기본 문법 18 ] out 과 ref (1) | 2024.09.23 |
[ C# 기본 문법 16 ] 상속과 다형성 (0) | 2024.09.23 |
[ C# 기본 문법 15 ] 클래스란? 객체란? (0) | 2024.09.23 |
[ C# 기본 문법 14 ] 객체 지향 프로그래밍? 그게 뭘까? (1) | 2024.09.23 |