728x90
728x90
7번째 수업 필기
1. 프로퍼티 - 자료를 보호하기 위해씀 ->private
class Enemy
{ private string name;
private int hp; }
public Enemy(string name, int _hp) -> 생성자는 private 사용X
{ this.name=name;
hp=_hp (this를 사용하고 싶지 않다면 유일하게 변수에 쓸수 있는 특수문자 _를 써서 살짝 다름을 표시) }
//프로퍼티 -> 자료(보호) ->private
//getter, setter 함수
class Enemy
{
private string name;
private int hp;
EnemyState state = EnemyState.idle;
//프로퍼티
public int Hp
{
get { return hp; }
set
{
hp = value;
if (hp <= 0) state = EnemyState.dead;
}
}
//생성자 -> 초기값 설정 메소드 (private 사용X)
public Enemy(string name, int _hp)
{
this.name = name;
hp = _hp;
}
}
enum EnemyState { idle, trace, attack, dead }
internal class Program
{
private static void Main(string[] args)
{
Enemy zombie = new Enemy("zombie", 100);
zombie.Hp = zombie.Hp - 10;
}
}
//자동프로퍼티
public string Name { get; set; }
//public string Name
//{
// get { return name; }
// set { name = value; }
// }
1.배열
//배열 -> 동일한 자료형 -> 여러개의 공간
1)int[] array1 = new int[3];
array1[0] = 1;
array1[1] = 2;
array1[2] = 3;
2)int[] array2 = new int[] { 1, 2, 3 };
3)int[] array3 = { 1, 2, 3 };
----------------------------------------------------------------------------> 다 같은 방법
1-2.이차원배열
int[,] array = { { 1, 2, 3 },{ 4, 5, 6 } }; int[x,y] -> x행 y열
Console.WriteLine(array.Length);
1 | 2 | 3 |
4 | 5 | 6 |
2.컬렉션 Collection > 배열, list, stack, queue
1)ArrayList list = new ArrayList();
list.Add(10);
list.Add(20);
list.Insert(1,15);
10 | 15 | 20 |
삭제
list.Remove()
list. RemoveAt()
2)queue -> 자료구조 -> 한쪽 입구에서 입력이 다른 입구에서 출력(들어간 순서대로)
Queue queue = new Queue();
queue.Enqueue(10); Enqueue ->입력
queue.Enqueue(20);
while (queue.Count > 0)
{
Console.WriteLine(queue.Dequeue); Dequeue -> 출력 ( 완전히 없어진다)
}
3)//stack -> 자료구조 -> 한쪽입구에서 입력과 출력이 발생 (queue와 반대로)
Stack stack= new Stack();
stack.Push(10);
stack.Push(20);
stack.Push(30);
while(stack.Count > 0)
{
Console.WriteLine(stack.Pop());
}
4)
hashTable(key<-->value)
Hashtable table = new Hashtable();
table["hp"] = 10;
table["speed"] = 3.5f;
table["name"] = "enemy";
5)
일반화 -> 특수한 개념으로부터 공통된 개념을 찾아 묶는 것
배열 복사(copy) 메소드
internal class Program
{
static void CopyArray(int[] source, int[] target)
{
for (int i = 0; i < source.Length; i++)
{
target[i] = source[i];
}
}
static void CopyArray(string[] source, string[] target)
{
for (int i = 0; i < source.Length; i++)
{
target[i] = source[i];
}
}
private static void Main(string[] args)
{
int[] source = { 1, 2, 3 };
int[] target = new int[source.Length];
CopyArray(source, target);
foreach (var item in target)
{
Console.WriteLine(item);
}
string[] source1 = { "a", "b", "c"};
string[] target1 = new string[source1.Length];
CopyArray(source1, target1);
foreach (var item in target1)
{
Console.WriteLine(item);
}
}
}
------------------------------------------------------------------------------------------------------- 위 아래 비교
static void CopyArray<T>(T[] source, T[] target)
{
for (int i = 0; i < source.Length; i++)
{
target[i] = source[i];
}
}
private static void Main(string[] args)
{
int[] source = { 1, 2, 3 };
int[] target = new int[source.Length];
CopyArray<int>(source, target);
foreach (var item in target)
{
Console.WriteLine(item);
}
string[] source1 = { "a", "b", "c"};
string[] target1 = new string[source1.Length];
CopyArray<string>(source1, target1);
foreach (var item in target1)
{
Console.WriteLine(item);
}
}
728x90
'유니티 > C#' 카테고리의 다른 글
9. C# 기초 수업 -9 (0) | 2023.03.30 |
---|---|
8. C# 기초 수업 -8 (0) | 2023.03.29 |
6. C# 기초 수업 -6 (0) | 2023.03.27 |
5. C# 기초 수업 -5 (0) | 2023.03.24 |
4. C# 기초 수업 -4 (0) | 2023.03.23 |