FxCop이 보호 된 멤버를 공개 DoNotDeclareVisibleInstanceFields 오류처럼 처리하는 이유는 무엇입니까? 나는 보호 된 멤버가 유효한 코드 디자인이라고 확신한다.FxCop이 보호 대상을 공개로 취급하는 이유는 무엇입니까?
1
A
답변
4
그게 무슨 뜻인지는 잘 모르겠지만, 일반적으로 보호 된 멤버는 클래스 인터페이스의 일부입니다.
public 멤버 변수가 필요하지 않으므로 구현이 융통성을 잃어 버리게됩니다. 보호 된 멤버 변수는 클래스를 상속 한 클래스가 해당 클래스에 의존하므로 구현이 융통성을 잃기 때문에 동일합니다.
Asaf
그것은 당신이 당신의 외부에서 볼 수있는 예를 필드 않다고 생각되어지고있어 오류처럼 보이는
5
클래스 외부에 표시되는 입력란을 선언하지 말아야합니다 (예 : 비공개가 아닌). 이 경우 protected
수정자를 클래스 외부의 멤버를 노출하는 것으로 올바르게 인식하지만 파생 된 유형에만 적용됩니다.
0
. 여기서 권장되는 방법은이 필드를 비공개로 설정하고 외부에서 볼 수있는 속성 (공개 또는 보호 된 액세스 한정자 포함)을 통해이 필드를 표시하는 것입니다.
using System;
namespace DesignLibrary
{
public class BadPublicInstanceFields
{
// Violates rule DoNotDeclareVisibleInstanceFields.
public int instanceData = 32;
}
public class GoodPublicInstanceFields
{
private int instanceData = 32;
public int InstanceData
{
get { return instanceData; }
set { instanceData = value ; }
}
}
}
:
오류에 MSDN 페이지는 좋은 예를 제공합니다
관련 문제
- 1. FxCop이 GC.KeepAlive()를 위반으로 표시하는 이유는 무엇입니까?
- 2. MSBuild가 여러 대상을 실행하지 않는 이유는 무엇입니까?
- 3. FxCop이 GotDotNet에 액세스하지 못하도록합니다.
- 4. 속성을 보호/개인용으로 설정하는 성능상의 이유는 무엇입니까?
- 5. 스테이지에서 대상을 참조하는 방법은 무엇입니까?
- 6. Drupal 개인 파일 시스템을 공개로
- 7. iPad에 올바른 배포 대상을 사용하여 앱을 설치할 수없는 이유는 무엇입니까?
- 8. FxCop이 외부 참조를 해결하지 않습니다.
- 9. 점검 대상을 결정하는 방법은 무엇입니까?
- 10. 이 C# 코드에서 FxCop이 오버플로 (CA2233)에 대해 경고하는 이유는 무엇입니까?
- 11. IMAP 프로토콜이 임시 보관함, 정크 메일함 및 휴지통 폴더를 사용자가 만든 폴더와 다르게 취급하는 이유는 무엇입니까?
- 12. WSDL URL을 내부 컴퓨터 이름에서 공개로 변경하는 방법은 무엇입니까?
- 13. 일부 커널 메모리 공개로 응용 프로그램 빌드
- 14. 빈에서 보호 속성을 만드는 것이 나쁜 습관으로 간주되는 이유는 무엇입니까?
- 15. F #에 보호 된 액세스 한정자가없는 이유는 무엇입니까?
- 16. 보호 모드에서 BIOS 인터럽트를 호출 할 수없는 이유는 무엇입니까?
- 17. 파이썬 단일 값과 val 값 목록을 동일하게 취급하는 방법은 무엇입니까?
- 18. 이렇게 웹 서비스를 취급하는 것이 맞습니까?
- 19. NHibernate : 디폴트 값을 null로 취급하는 간단한 방법
- 20. 플랫폼 대상을 VS2003으로 변경
- 21. 메소드가 개인, 보호, 내부 또는 공용인지 결정하는 방법은 무엇입니까?
- 22. 자바 rmi 인증 및 보안. exportObject는 공개로 설정합니까?
- 23. FxCop을 사용해야합니까? 그 이유는 무엇입니까?
- 24. 모든 Finder 별칭의 대상을 쿼리하는 방법은 무엇입니까?
- 25. [cedet] : 새 ede 대상을 추가하는 방법은 무엇입니까?
- 26. 스테이지에있는 모든 유형의 대상을 찾는 방법은 무엇입니까?
- 27. 동적 대상을 낙타에 추가하는 방법은 무엇입니까?
- 28. PHP cURL : 리디렉션 대상을 따르지 않고
- 29. NSMenuItem -setTarget : 대상을 유지합니까?
- 30. 접미어가없는 대상을 관리하려면 어떻게해야합니까?