C# 구조 및 클래스 선택 : 구조는 언제 사용됩니까?
소개
개발자들 사이에서 구조의 사용은 항상 논란의 여지가있는 주제였습니다. 이 기사는 모범 사례 및 실제 사례에 따라 구조를 고려해야 할 때를 안내하는 것을 목표로합니다.
Microsoft의 제안
제 3 자 리소스에만 의존하는 대신, 구조물 사용에 대한 Microsoft의 공식 위치를 언급하는 것이 좋습니다.
작고 짧거나 내장 된 물체의 경우 구조 사용을 고려하십시오. <..>
다음 조건이 충족되지 않으면 구조를 피합니다.
는 gm
의 유형과 유사한 단일 값을 나타냅니다.
예제 크기는 16 바이트 미만입니다
는 불변 입니다
최소 복싱 요구
Microsoft의 실제 편차
흥미롭게도 Microsoft의 내부 코드는 때때로 이러한 규칙을 위반하여 이에 대한 유연성과 실질적인 이유를 보여줍니다. 예를 들어, - 는 내부 구조를 사용하여 성능을 향상시키고 인터페이스 구현 요구 사항을 충족합니다.
규칙 개선
실제 사용에 대한 Microsoft의 제안 및 검사에 따르면 다음과 같은 개선 사항이 나타났습니다.
값에 대한 구조의 구조 : 구조체는 요소 유형과 유사한 단일 또는 제한된 값을 가진 논리 단위를 나타 내야합니다.
성능을 고려하십시오 : 구조의 유형 특성으로 인해 성능을 향상시키고 참조 유형과 관련된 비용을 피할 수 있습니다. -
변동성과 권투를 피하십시오 :
구조는 일반적으로 불변이어야하며 성능 감소를 피하기 위해 자주 박스를 사용해서는 안됩니다.
인터페이스를주의 깊게 사용하십시오 : 구현 인터페이스의 구조는 참조 유형이되며 권투 오버 헤드가 생성 될 수 있습니다.
실제 예 : 사전 구현
클래스는 구조 사용의 설명 예를 제공합니다.
-
내부 구조 - 및
는 단일 값을 나타냅니다. -
그들은 성능을 최적화하고 빈번한 복싱을 피하는 데 사용됩니다.
그러나 그러나 특정 구현 요구 사항을 충족하기 위해 필수 및 인스턴스 규모 규칙을 위반합니다. -
클래스와 비교
구조와 클래스의 성능 차이를 이해하려면 300,000 미터를 포함하는 사전의 다음 작업을 고려하십시오.
구조 사용의 성능은 더 빠른 조정 측면에서 명백하며, 이는 값 유형의 효율성을 증명합니다. 그러나 초기화 구조의 기준 유형은 추가 성능 비용을 생성합니다.
결론
구조 또는 클래스가 응용 프로그램의 특정 요구 사항에 따라 달라야하는지 여부. 가치 지향 객체의 경우,이 구조는 성능 장점과 논리적 응집력을 제공합니다. 개발자는 신중하고 실제 영향을 고려하여 토론 원칙을 통해 구조를 효과적으로 사용하여 C# 코드 라이브러리를 향상시킬 수 있습니다.
위 내용은 C#의 Structs vs. 클래스 : 구조물을 언제 선택해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!