CA1051: Nie deklaruj widocznych pól wystąpień
TypeName |
DoNotDeclareVisibleInstanceFields |
CheckId |
CA1051 |
Kategoria |
Microsoft.Design |
Zmiana kluczowa |
Kluczowa |
Przyczyna
Typ widoczny z zewnątrz, ma pole wystąpienia widoczne z zewnątrz.
Opis reguły
Głównym zastosowaniem pola powinno być to, co szczegółowo opisuje implementacja.Pola powinny być private lub internal i powinny być uwidocznione przy użyciu właściwości.Dostęp do właściwości jest tak prosty, jak dostęp do pola a kod w metodach dostępu do właściwości można zmienić wraz z rozwijaniem właściwości typu bez wprowadzania zmian kluczowych.Właściwości zwracające tylko wartość prywatnego lub wewnętrznego pola są zoptymalizowane do wykonywania na równi z dostępem do pola; bardzo małe zwiększenie wydajności jest skojarzone z użyciem pól widocznych z zewnątrz za pośrednictwem właściwości.
Widoczność z zewnątrz, odnosi się do poziomów dostępności public, protected i protected internal (Public, Protected oraz Protected Friend.
Jak naprawić naruszenia
Aby naprawić naruszenie tej zasady, należy stworzyć pole private lub internal i uwidocznić je za pomocą właściwości widocznej z zewnątrz.
Kiedy pominąć ostrzeżenia
Nie należy pomijać ostrzeżenia dotyczącego tej reguły.Pola widoczne z zewnątrz nie udostępniają żadnych korzyści, które nie są niedostępne dla właściwości.Ponadto pola publiczne nie mogą być chronione przez Żądania połączeń.See CA2112: Typy zabezpieczone nie powinny uwidaczniać pól.
Przykład
Poniższy przykład przedstawia typ (BadPublicInstanceFields), który narusza tę regułę.GoodPublicInstanceFields przedstawia poprawiony kod.
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 ; }
}
}
}
Powiązane reguły
CA2112: Typy zabezpieczone nie powinny uwidaczniać pól