C\#7.2 중 구조 체 성능 문제 해결 방안

1943 단어 c#7.2구조 체성능
머리말
readonly 키 워드 를 사용 한 경우 C\#컴 파일 러 는 구조 체 의 방어 던 전 을 만 듭 니 다.이 문 제 는 이미 잘 알려 져 있 고 기록 하 다. 에 의 해 내 려 왔 지만 C\#7.2 의 몇 가지 특성 과 관련 이 있 기 때문에 재 검토 할 필요 가 있다.in 과 ref readonly 키워드 의 사용 은 이 문 제 를 더욱 자주 발생 시 켰 고 readonly 구조 체 는 해결 방법 을 제공 했다.
C\#의 구조 체 는 일반적으로 성능 을 향상 시 키 고 메모 리 를 분배 하고 소각 하 는 비용 을 줄 이 는 데 쓰 인 다.그러나 잠재 적 인 함정 은 사용 을 제한한다.C\#7.2 는 이 문 제 를 해결 하기 위해 개 선 된 readonly 구조 체 를 추가 했다.
다음 과 같은 몇 가지 상황 에서 C\#컴 파일 러 는 구조 체 에 복사 본 을 만 들 것 입 니 다.
  •  구조 체 는 읽 기만 하 는 것 이 아니다.
  •  기구 변수 가 readonly 수식 자 를 사 용 했 습 니 다.
  •  호출 방법(속성 포함).
  • 
    public struct SomeStruct 
    {
     private int _x;
    
     
     public int X { get { return _x; } }
    }
    
     
    private readonly SomeStruct s = new SomeStruct(42);
    
     
    s.X; //             。
    x 가 in 매개 변수,ref readonly 부분 변수 또는 readonly reference 를 통 해 값 을 되 돌려 주 는 방법 으로 호출 된 결과 일 때 같은 규칙 을 적용 합 니 다.
    
    public void BadFunction(in SomeStruct s)
    
    {
     s.X; //             。
    }
    C\#7.2 는 readonly 구조 체 를 성명 할 가능성 을 증가 시 키 고 방어 던 전 생 성 을 피 하 는 솔 루 션 을 제공 합 니 다.readonly 라 고 밝 힌 구조 체 는 속성 설정 기 를 가 질 수 없고 구조 체 구성원 에 게 값 을 부여 할 수 없습니다.
    우 리 는 정태 적 인 분석 을 통 해 방어 적 인 던 전 문 제 를 검사 할 수 있다.ErrorProne.NET 의 영감 은 ErrorProne,자바 정적 분석 도구 에서 나 왔 다..NET 에 이 식 된 버 전 은 로 슬 린 분석 기로 구성 되 어 정확성 과 성능 에 중점 을 두 고 있다.이 중 일부 분석 기 는 구조 체 에 적용 되 며 Nuget 패키지 로 다운로드 할 수 있다.
    총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기