CA1715: Tanımlayıcıların önekleri doğru olmalıdır
Özellik | Değer |
---|---|
Kural Kimliği | CA1715 |
Başlık | Tanımlayıcılar doğru ön eke sahip olmalıdır |
Kategori | Adlandırma |
Hataya neden olan veya bozulmayan düzeltme | Kırılma - arabirimlerde tetiklendiğinde. Hataya neden olmayan - genel tür parametrelerinde yükseltildiğinde. |
.NET 8'de varsayılan olarak etkin | Hayır |
Neden
Bir arabirimin adı büyük harfli 'I' ile başlamaz.
-veya-
Bir tür veya yöntemdeki genel tür parametresinin adı büyük harf 'T' ile başlamaz.
Varsayılan olarak, bu kural yalnızca dışarıdan görünen arabirimlere, türlere ve yöntemlere bakar, ancak bu yapılandırılabilir.
Kural açıklaması
Kural gereği, belirli programlama öğelerinin adları belirli bir ön ek ile başlar.
Arabirim adları büyük harfli 'I' ve ardından başka bir büyük harfle başlamalıdır. Bu kural, 'MyInterface' ve 'IsolatedInterface' gibi arabirim adları için ihlalleri bildirir.
Genel tür parametre adları büyük harfli 'T' ile başlamalıdır ve isteğe bağlı olarak başka bir büyük harf tarafından takip edilebilir. Bu kural, 'V' ve 'Type' gibi genel tür parametre adları için ihlalleri bildirir.
Adlandırma kuralları, ortak dil çalışma zamanını hedefleyen kitaplıklar için ortak bir görünüm sağlar. Bu, yeni yazılım kitaplıkları için gereken öğrenme eğrisini 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.
Çö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çenekleri kullanın.
Bu seçenekleri yalnızca bu kural için, geçerli olduğu tüm kurallar için 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
Tek karakterli tür parametreleri
Tek karakterli tür parametrelerinin bu kuraldan dışlanıp dışlanmayacağını yapılandırabilirsiniz. Örneğin, bu kuralın tek karakterli tür parametrelerini analiz etmemesi gerektiğini belirtmek için projenizdeki bir .editorconfig dosyasına aşağıdaki anahtar-değer çiftlerinden birini ekleyin:
# Package version 2.9.0 and later
dotnet_code_quality.CA1715.exclude_single_letter_type_parameters = true
# Package version 2.6.3 and earlier
dotnet_code_quality.CA2007.allow_single_letter_type_parameters = true
Dekont
Bu kural, adlı T
bir tür parametresi için hiçbir zaman tetiklenmiyor, örneğin, Collection<T>
.
İhlalleri düzeltme
Tanımlayıcıyı doğru ön ekli olacak şekilde yeniden adlandırın.
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan uyarıyı bastırmayın.
Arabirim adlandırma örneği
Aşağıdaki kod parçacığı yanlış adlandırılmış bir arabirimi gösterir:
' Violates this rule
Public Interface Book
ReadOnly Property Title() As String
Sub Read()
End Interface
// Violation.
public interface Book
{
string Title
{
get;
}
void Read();
}
Aşağıdaki kod parçacığı arabirimine 'I' ön ekini ekleyerek önceki ihlali düzeltir:
// Fixes the violation by prefixing the interface with 'I'.
public interface IBook
{
string Title
{
get;
}
void Read();
}
' Fixes the violation by prefixing the interface with 'I'
Public Interface IBook
ReadOnly Property Title() As String
Sub Read()
End Interface
Tür parametresi adlandırma örneği
Aşağıdaki kod parçacığı yanlış adlandırılmış genel tür parametresini gösterir:
' Violates this rule
Public Class Collection(Of Item)
End Class
// Violation.
public class Collection<Item>
{
}
Aşağıdaki kod parçacığı, genel tür parametresine 'T' ön ekini ekleyerek önceki ihlali düzeltir:
// Fixes the violation by prefixing the generic type parameter with 'T'.
public class Collection<TItem>
{
}
' Fixes the violation by prefixing the generic type parameter with 'T'
Public Class Collection(Of TItem)
End Class