일반 속성에 대한 C#의 제한 이해
C#에서는 일반 유형을 속성으로 사용하는 것을 금지합니다. 예를 들어 다음 코드는 다음과 같습니다.
<code class="language-csharp">public sealed class ValidatesAttribute<T> : Attribute { } [Validates<string>] public static class StringValidation { }</code>
컴파일에 실패합니다. 이러한 제한 사항은 잘 알려져 있지만 그 이유는 명확하지 않습니다.
공용 언어 인프라(CLI) 사양은 일반 속성을 명시적으로 금지하지 않습니다. 그러나 C# 3 사양(섹션 10.1.4)에서는 정당한 이유 없이 금지 사항을 명확하게 명시하고 있습니다. ECMA C# 2 사양은 더 이상의 설명을 제공하지 않습니다.
연구 결과에 따르면 이러한 결정은 기술적인 제약이 아니라 디자인 선택에 따른 것이었습니다. Eric Lippert(요약)에 따르면 일반 속성을 지원함으로써 추가되는 복잡성이 이점보다 더 커서 개발자에게 실질적인 가치를 제공하지 못한 채 언어와 컴파일러가 더욱 복잡해지게 됩니다.
위 내용은 C#에 일반 특성을 가질 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!