데코레이팅된 Size 구조체에 명시적 InlineArrayAttribute 적용은 모호하며 더 이상 형식 로더에서 지원되지 않습니다. 이전에는 명시적 Size 을 지정하면 사용자 예상과 일치하거나 일치하지 않을 수 있는 구현별 동작이 발생합니다.
도입된 버전
.NET 10
이전 동작
이전에 Size로 데코레이팅된 구조체에 InlineArrayAttribute을 지정하는 것이 허용되었지만, 이는 사용자 기대와 일치하거나 일치하지 않을 수 있는 구현별 동작을 초래했습니다.
[InlineArray(8)]
[StructLayout(LayoutKind.Explicit, Size=32)]
struct Int8InlineArray
{
private int _value;
}
새 동작
.NET 10부터 Size으로 장식된 InlineArrayAttribute 구조체에 지정하는 것이 금지됩니다. 그러한 구조체의 인스턴스를 만들려고 하면 TypeLoadException 오류가 발생합니다.
파괴적 변경 유형
이 변경 내용은 이진 호환성에 영향을 줄 수 있습니다.
변경 이유
인라인 배열 구조체를 지정하는 Size 것은 모호하며 해석은 사양과 모순됩니다.
권장 작업
드문 경우 배열 요소 또는 전체 인라인 배열에 대해 명시적 크기를 지정해야 하며 요소 형식 또는 전체 배열 형식을 래핑하는 구조체를 도입해야 합니다. 래퍼의 레이아웃에서 Size를 적절하게 지정하십시오.
영향을 받는 API
- 형식 로더
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET