C# Study/C# 기초 맨텀 2021. 4. 9. 21:31
종료자 - 클래스 이름 앞에 ~붙이는 형태로 구현 가능 (C++과 동일) - 그러나 구현하지 않는 편이 좋음. 1) 명시적으로 구현되어 있으면 GC가 object로부터 상속받은 Finalize() 메서드를 클래스의 족보를 타고 올라가며 호출하여 성능의 저하를 가져올 확률이 높음 2) 언제 GC가 수거해갈지 예측할 수 없음 class MyClass() { public MyClass() { // 생성자 } public ~MyClass() { // 종료자 } } 얕은 복사 - 참조형식으로 복사한 것. 같은 힙 공간을 가리키고 있다. 깊은 복사 - 별도의 힙 공간에 객체를 복사한 것. - 보통은 별도로 프로그래머가 구현한다. this() 생성자 - 생성자를 오버 로딩하여 구현할 때, this()를 사용하여 코드..
C# Study/C# 기초 맨텀 2021. 4. 9. 20:58
값에 의한 전달 - 매개변수는 메서드 외부에서 메서드 내부로 데이터를 전달하는 매개체일 뿐이다. - 그 데이터가 값이든 참조든 상관없이 데이터가 복사된다! public static void Main() { int a = 0; int b = 1; int sum = Plus(a, b); } public int Plus(int x, int y) { } - 위와 같은 상황에서는, a에는 0, b에는 1이 할당되어있다가 Plus를 선언하는 순간 int x = a; 와 int y = b; 로 값이 복사된다. (값에 의한 전달) 참조에 의한 전달 - ref 키워드를 이용하여 public static void Main() { int a = 0; int b = 1; Plus(ref a, ref b); } public v..
C# Study/C# 기초 맨텀 2021. 4. 9. 20:30
기본형 for문 int[] temps = new int[] { 1, 2, 4 }; for (int i = 0; i = 0; i--) { Console.Write(temps[i]); }
C# Study/C# 기초 맨텀 2021. 4. 9. 18:01
Null 병합 연산자 (??) - 왼쪽 피연산자가 null이 아니면 -> 왼쪽 항을 반환 - 왼쪽 피연산자가 null -> 오른쪽 항을 반환 int a = 1; int? b = null; Debug.Log(${a ?? 0}); // null이 아니라 1이 출력됨. Debug.Log(${b ?? 3}); // null이라 3이 출력됨. 연산자의 우선순위 우선순위 종류 연산자 1 증가/감소 연산자 및 Null 조건부 연산자 후위 ++/--연산자, ?., ?[] 2 증가/감소 연산자 전위 ++/-- 연산자 3 산술 연산자 * / % 4 산술 연산자 + - 5 시프트 연산자 > 6 관계 연산자 = is as 7 관계 연산자 == != 8 비트 논리 연산자 & 9 비트 논리 연산자 ^ 10 비트 논리 연산..
C# Study/C# 기초 맨텀 2021. 4. 8. 20:26
탐색 메서드 IndexOf( ) 지정된 문자 또는 문자열의 위치 반환 LastIndexOf( ) 지정된 문자 또는 문자열의 위치를 뒤에서부터 반환 StartsWith( ) 특정 문자열로 시작하는지를 평가 EndsWith( ) 특정 문자열로 끝나는지를 평가 Contains( ) 특정 문자열을 포함하는지를 평가 Replace( ) 특정 문자열을 모두 다른 문자열로 바꾸고 바뀐 전체 문자열을 반환 변형 메서드 - 그 자체를 바꾸는 게 아니라, 새 문자열을 반환함에 주의. ToLower( ) 모든 문자를 소문자로 바꾸고, 새 문자열을 반환. ToUpper( ) 모든 문자를 대문자로 바꾸고, 새 문자열을 반환. Insert( ) 지정 위치에 특정 문자열을 삽입하고, 새 문자열을 반환 Remove( ) 지정 위치부..
C# Study/C# 기초 맨텀 2021. 4. 8. 17:52
스택 메모리 - 값 형식을 저장하는 영역 - 코드 블록 안에서 생성된 변수들은 블록이 닫히면 메모리에서 제거됨 힙 메모리 - 참조 형식을 저장하는 영역 - 자동으로 제거되지 않으며, 가비지 컬렉터가 수거함 - 코드 블록이 사라지는 시점과 관계없이 데이터를 유지하고 싶을 때 사용 값 형식의 변수 - 스택 영역에 값을 저장함. { int variable = 1; } 참조 형식의 변수 - 힙과 스택을 동시에 사용함. - 힙 영역에는 데이터를 저장 - 스택 영역에는 데이터가 저장되어있는 힙 메모리의 주소를 저장 { object temp = 1; } - 힙에는 1을 저장하고, temp는 값이 저장된 힙의 주소만 스택에 저장함 - 코드 블록이 끝나면 주소 값을 저장한 스택 영역은 사라진다. - 참조가 없어진 1은 ..