본문 바로가기
반응형

C#/Effective C#35

[Effective c#] Item11 ~ Item13 .NET 리소스 관리에 대한 이해 힙에 관한 메모리 관리는 가비지 콜렉터가 완전히 책임 진다. 이외에 비관리 리소스는 개발자가 관리해야함 더보기 비관리 리소스 - finalizer와 IDisposable 인터페이스 라는 2개의 메커니즘을 제공 => finalizer는 객체를 가비지로 판단한 경우 이 객체를 다른 큐에 삽입하여 나중에 finalizer를 호출할 준비만 수행함 가비지콜렉터의 세대 개념 0세대 : 수집 절차 이후 생서된 객체들 1새대 : 두번이상 수집절차에서 살아남은객체들 수집 절차 ? 기본적으로 0세대 객체만 검사 1세대는 대력 10번에 한번 검사 2세대는 대력 100번에 한번 검사 비관리 리소스를해제하는 좋은 방법은 IDisposable을 사용하는 것이다. [Item12] 할당 구문보다 멤.. 2022. 7. 8.
[Effective C#] Item6 ~ Item 10 [Item6] nameof 연산자를 적극 확용하라. 항상 로컬이름을 문자열로 반환하는 역할을 한다. 심볼의 이름을 평가하며 타입, 변수, 인터페이스, 네임스페이스 에 대해 사용할 수 있다. 심볼의 이름을 바꾸거나 수정할 때도 손쉽게 반영 가능하다. 항상 로컬 이름을 문자열로 반환한다. Ex) 완전 정규화된 이름이 System.Int.MaxValue 이더라도 항상 로컬이름 MaxValue를 반환 [Item7] delegate를 이용하여 콜백을 표현하라. delegate를 이용하면 타입 안정적인 콜백을 정의할 수 있다. .Net Framework 라이브러리는 Predicate, Action, Func와 같은 형태로 자주 사용되는 delegate를 정의해두고 있다. 더보기 Predicate : 조건을 검사하여.. 2022. 7. 8.
[Effective C#] Item1 ~ Item5 [Item1] 지역변수를 선언할 때는 var를 사용하는 것이 낫다. C# 언어가 익명 타입을 지원한다. 개발자가 코드를 읽을때 쉽게 짐작할 수 없다면 명시적 타입을 기술하는것이 낫다. [Item2] Const 보다는 readonly가 좋다. 컴파일 타임 상수(Const)보다는 런타임 상수(readonly)를 사용하라 컴파일 타임 상수는 성능이 매우 중요하고 상수의 값이 절대 바뀌지 않을때만 사용 더보기 컴파일타임과 런타임 - 컴파일 타임 : 작성된 코드를 컴파일 과정을 통해 실행 가능한 프로그램으로 편집하는 과정 - 런타임 : 컴파일 과정을 마친 프로그램을 동작 시키는 과정 런타임 상수는 메서드 내에서 선언할 수 없다.(컴파일은 가능) 컴파일 타임 상수는 내장된숫자형, enum, 문자열, null 만 가.. 2022. 7. 8.
반응형