일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- Doubly Connected Edge List
- C
- 분할축 이론
- dp
- Vector
- 수학
- linux
- Expanding Polytope Algorithm
- 벡터
- GJK
- SOH
- ubuntu
- 유니티
- c#
- 문제풀이
- PS
- uclidean algorithm
- 리눅스
- 백준
- Unity
- 다이나믹 프로그래밍
- 보로노이다이어그램
- 내적
- 외적
- 충돌 알고리즘
- C++
- AABB
- Graham Scan
- 우분투
- Today
- Total
목록Code/C# (3)
마이 플밍 블로그

GC란? 다들 알다시피 C#은 C나 C++과 달리 직접 메모리 해제를 할 필요가 없다. 이렇게 할 수 있는 이유로는 Garbage Collector라는 것이 있기 때문인데 이것은 CLR(Common Language Runtime, 공용 언어 런타임)에서 자동메모리 관리기능을 한다. GC덕에 우리는 메모리 관리 부담을 덜하면서 개발할 수 있다. 1. CLR의 메모리 할당 C#에서의 할당을 보자면 소스코드 컴파일 후 실행하면 CLR에선 일정 크기의 메모리를 확보하게된다. 이렇게 관리되는 Heap 메모리 영역을 Managed Heap라고 한다. 이렇게 확보한 Managed Heap의 첫번째 주소에 다음 객체를 할당할 메모리 주소를 메모리의 포인터로 가리킨다. 객체를 생성하게 된다면 포인터가 가리키고 있는 주소..
간혹 프로그램을 작성하다 보면 특정 클래스에 메서드를 추가하고 싶은 경우가 있다. 그게 내가 만든 클래스라면 직접 파일을 열어서 추가하면 되지만 외부 라이브러리를 사용할 시 직접 수정하지 못하게 막아놓은 경우도 있을 것이다. 그럴 경우에 사용하면 되는 것이 확장메서드이다. 확장메서드를 사용할 시 클래스 내부가 아닌 외부에서 메서드를 정의함으로서 기존 형식의 코드변경 없이 외부에서 대상 형식에 메서드를 추가할 수 있다. 확장메서드 만들기 확장메서드는 static클래스 안에서 static 메서드로 정의된다. public static class ExtensionMethod { public static void TestExtensionMethod1(this string a) { Console.WriteLine(..
복잡한 문자열 처리를 위해서는 Regular Expression를 사용한다. 닷넷에선 이 기능을 Regex 클래스를 중심으로 구현을 했다. Regular Expression의 기능은 Perl에서 진화한 것인데 Perl 5 Regular Expression와 호환 되도록 하였다 Regular Expression을 이용하면 문자열 데이터에서 특정 패턴을 찾아내고 다른 문자열 데이터로 치환할 수 있다. Regex 문자열 패턴 찾기 Regex 클래스를 활용해 특정 문자 패턴을 찾는 몇가지 예를 보자 Regex를 생성할 때 특정 문자패턴을 파라미터로 넘긴다 Match()메서드를 이용해서 문자열에 문자 패턴이 존재하는지 검사한다. Regex.Match는 Match 클래스 객체를 리턴한다. 존재한다면 Match.Su..