CA1721: Tür adları alma yöntemleriyle eşleşmemelidir
Özellik | Değer |
---|---|
Kural Kimliği | CA1721 |
Başlık | Özellik adları get metotları ile eşleşmemelidir |
Kategori | Adlandırma |
Hataya neden olan veya bozulmayan düzeltme | Yeni |
.NET 8'de varsayılan olarak etkin | Hayır |
Neden
Üyenin adı 'Get' ile başlar ve aksi takdirde bir özelliğin adıyla eşleşir. Örneğin, 'GetColor' adlı bir yöntemi ve 'Color' adlı bir özelliği içeren bir tür kural ihlaline neden olur. Özelliği veya yöntemi ile ObsoleteAttributeişaretlenmişse bu kural tetiklenmez.
Varsayılan olarak, bu kural yalnızca dışarıdan görünen üyelere ve özelliklere bakar, ancak bu yapılandırılabilir.
Kural açıklaması
"Get" yöntemlerinin ve özelliklerinin açıkça işlevlerinden ayırt edilebilen adları olması gerekir.
Adlandırma kuralları, ortak dil çalışma zamanını hedefleyen kitaplıklar için ortak bir görünüm sağlar. Bu tutarlılık, yeni bir yazılım kitaplığını öğrenmek için gereken süreyi azaltır ve kitaplığın yönetilen kod geliştirme konusunda uzmanlığı olan biri tarafından geliştirildiğine dair müşteri güvenini artırır.
İhlalleri düzeltme
'Get' ön ekli bir yöntemin adıyla eşleşmemesi için adı değiştirin.
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan uyarıyı bastırmayın. Bu kuralın bir istisnası, "Get" yönteminin arabirimin uygulanmasından IExtenderProvider kaynaklanmasıdır.
Uyarıyı gizleme
Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.
#pragma warning disable CA1721
// The code that's violating the rule is on this line.
#pragma warning restore CA1721
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.CA1721.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.
Çözümlemek için kod yapılandırma
Bu kuralın kod tabanınızın hangi bölümlerinde çalıştırılacaklarını yapılandırmak için aşağıdaki seçeneği kullanın.
Bu seçeneği yalnızca bu kural, geçerli olduğu tüm kurallar veya bu kategorideki (Adlandırma) tüm kurallar için yapılandırabilirsiniz. Daha fazla bilgi için bkz . Kod kalitesi kuralı yapılandırma seçenekleri.
Belirli API yüzeylerini ekleme
Bu kuralın üzerinde çalıştırılacak kod tabanınızın hangi bölümlerini erişilebilirliklerine göre yapılandırabilirsiniz. Örneğin, kuralın yalnızca genel olmayan API yüzeyinde çalıştırılması gerektiğini belirtmek için projenizdeki bir .editorconfig dosyasına aşağıdaki anahtar-değer çiftini ekleyin:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Örnek
Aşağıdaki örnek, bu kuralı ihlal eden bir yöntem ve özellik içerir.
public class Test
{
public DateTime Date
{
get { return DateTime.Today; }
}
// Violates rule: PropertyNamesShouldNotMatchGetMethods.
public string GetDate()
{
return this.Date.ToString();
}
}
Imports System
Namespace ca1721
Public Class Test
Public ReadOnly Property [Date]() As DateTime
Get
Return DateTime.Today
End Get
End Property
' Violates rule: PropertyNamesShouldNotMatchGetMethods.
Public Function GetDate() As String
Return Me.Date.ToString()
End Function
End Class
End Namespace