Aracılığıyla paylaş


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ı Tbir 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