C\#7.2 중 구조 체 성능 문제 해결 방안
readonly 키 워드 를 사용 한 경우 C\#컴 파일 러 는 구조 체 의 방어 던 전 을 만 듭 니 다.이 문 제 는 이미 잘 알려 져 있 고 기록 하 다. 에 의 해 내 려 왔 지만 C\#7.2 의 몇 가지 특성 과 관련 이 있 기 때문에 재 검토 할 필요 가 있다.in 과 ref readonly 키워드 의 사용 은 이 문 제 를 더욱 자주 발생 시 켰 고 readonly 구조 체 는 해결 방법 을 제공 했다.
C\#의 구조 체 는 일반적으로 성능 을 향상 시 키 고 메모 리 를 분배 하고 소각 하 는 비용 을 줄 이 는 데 쓰 인 다.그러나 잠재 적 인 함정 은 사용 을 제한한다.C\#7.2 는 이 문 제 를 해결 하기 위해 개 선 된 readonly 구조 체 를 추가 했다.
다음 과 같은 몇 가지 상황 에서 C\#컴 파일 러 는 구조 체 에 복사 본 을 만 들 것 입 니 다.
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 패키지 로 다운로드 할 수 있다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구조 체 (2)위 에서 구조 체 형식 struct student 를 정의 한 경우 변 수 를 정의 할 수 있 습 니 다. struct student stu1; //이곳 의 struct student 는 함께 사용 해 야 전체 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.