다음을 통해 공유


CA1058: 형식은 특정 기본 형식을 확장하면 안 됩니다.

TypeName

TypesShouldNotExtendCertainBaseTypes

CheckId

CA1058

범주

Microsoft.Design

변경 수준

주요 변경

원인

외부에서 볼 수 있는 형식이 특정 기본 형식을 확장합니다.현재로서 이 규칙은 다음 형식에서 파생되는 형식을 보고합니다.

규칙 설명

.NET Framework 버전 1의 경우에는 ApplicationException에서 새 예외를 파생시킬 것을 권장했습니다.이 권장 사항이 변경되어 새 예외는 System.Exception에서 파생되거나 System 네임스페이스에 있는 해당 클래스의 서브클래스 중 하나에서 파생되어야 합니다.

내부 개체 모델 또는 데이터 소스의 XML 뷰를 만들고자 하는 경우에는 XmlDocument의 서브클래스를 만들지 마십시오.

ms182171.collapse_all(ko-kr,VS.110).gif제네릭이 아닌 컬렉션

가능하면 제네릭 컬렉션을 사용하거나 확장하십시오.제네릭이 아닌 코드는 이미 제공한 경우가 아니면 코드에서 확장하지 마십시오.

올바르지 않은 사용 예제

public class MyCollection : CollectionBase
{
}
 
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}

올바른 사용 예제

public class MyCollection : Collection<T>
{
}
 
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}

위반 문제를 해결하는 방법

이 규칙 위반 문제를 해결하려면 형식을 다른 기본 형식이나 제네릭 컬렉션에서 파생시킵니다.

경고를 표시하지 않는 경우

ApplicationException과 관련된 위반의 경우 이 규칙에 따른 경고를 표시해야 합니다.XmlDocument에 대한 위반의 경우 이 규칙에서 경고를 표시하지 않도록 설정해도 안전합니다.코드가 이미 발표된 경우 제네릭이 아닌 컬렉션에 대한 경고를 표시하지 않도록 설정해도 안전합니다.