Svick의 대답은 좋지만 몇 가지 추가 포인트를 추가 할 것이라고 생각했습니다.
먼저, 단락에 결함이 있습니다. 포인터 유형은 객체에서 상속되지 않습니다. 컴파일 타임에 인터페이스 유형 또는 유형 매개 변수 유형으로 알려진 값은 런타임에 유효하지 않은 참조 또는 객체에서 상속 된 무언가의 선례 인스턴스이지만 항상 이러한 유형이 " "상속으로부터 상속"; 상속은 조상의 구성원이 후손의 구성원이라는 속성이지만 일반적으로 "ToString"을 IEnumerable의 구성원으로 생각하지는 않습니다. IEnumerable 구현 하는 멤버로 생각합니다 .
이 부분은 스펙에 "primitive type"이 나타나는 유일한 곳이기 때문에 결함이 있으며 정의없이 나타납니다. 따라서 불필요하고 혼란 스럽기 때문에 제거해야합니다.
이 단락을 잠시 수정하고 싶었습니다. 다음에 Mads를 보자.
특정 질문을 해결하려면 : svick은 물론 정확하지만 특정 예제를 보는 것이 도움이됩니다. 네가 얘기 할 때:
struct ColorfulInt
{
int value;
Color color;
...
}
예를 들어 배열을 만듭니다.
ColorfulInt[] x = new ColorFulInt[100];
그런 다음 해당 100 int 및 100 Colors의 스토리지 는 어레이 자체에 저장됩니다 . ColorfulInt가 대신 클래스 인 경우 배열에는 ColorfulInt에 대한 100 개의 참조가 포함되며 각 참조는 개별적으로 할당되어야합니다. 이러한 백 개의 요소를 개별적으로 할당하는 것은 단순히 스토리지 자체를 스토리지 자체에 할당하는 것보다 시간과 공간에서 훨씬 덜 효율적입니다.