본문 바로가기

c#2

CLR : System.Object 모든 타입은 System.Object 로부터 파생된다. 따라서, 모든 개체의 타입은 다음과 같은 Public Instance method를 반드시 포함한다. Equals 두 개의 개체가 같은 값을 가지고 있으면 true를 반환한다. 참조 형식의 경우 같은 메모리 주소를 가리킬 때, 값 형식의 경우 모든 멤버의 값이 같을 때. GetHashCode 개체 값에 대한 해시 코드를 반환한다. 개체가 해시 테이블에서 키를 사용하려 한다면 이 메서드를 override 해야 한다. ToString 기본적으로 타입의 전체 이름을 반환한다(this.GetType().FullName). 대부분은 이 메서드를 재정의하여 개체의 상태를 표현하는 문자열 개체를 반환하도록 사용한다. 디버깅을 위해 개체의 값을 문자열로 반환하기도.. 2021. 3. 20.
CLR : 참조 형식, 값 형식 CLR은 두 가지 종류의 타입, 참조 형식과 값 형식이 있다. C# 의 new 연산자에 의해서 개체의 메모리 주소(메모리 주소는 개체를 참조함)를 반환받는다. 개발자가 참조 형식을 이용해서 작업할 때는 성능에 대한 고려를 미리 해야 한다. 메모리는 힙 영역으로부터 할당받아야 한다. 힙에서 할당받은 각각의 개체에 포함된 멤버 중 몇몇은 초기화가 필요함으로 오버헤드가 발생할 수 있다. 개체 내의 다른 바이트들은 항상 0으로 초기화된다. 힙 영역으로부터 개체를 할당하는 것은 GC를 발생시킬 수 있다. 만약, 모든 타입이 참조 형식이라면 애플리케이션의 성능은 크게 저하될 것이다. 개발자가 매번 Int32 를 사용할 때마다 메모리 할당이 발생한다면 성능이 매우 느려질 것이다. 값 형식 인스턴스는 보통 스레드의 스.. 2021. 3. 18.