Bagikan melalui


CA1715: Pengidentifikasi harus memiliki awalan yang benar

Properti Nilai
ID Aturan CA1715
Judul Pengidentifikasi harus memiliki awalan yang benar
Golongan Penamaan
Perbaikan bersifat disruptif atau non-disruptif Melanggar - saat diaktifkan pada antarmuka.

Tidak melanggar - saat dinaikkan pada parameter jenis generik.
Diaktifkan secara default di .NET 8 Tidak

Penyebab

Nama antarmuka tidak dimulai dengan huruf besar 'I'.

-atau-

Nama parameter jenis generik pada jenis atau metode tidak dimulai dengan huruf besar 'T'.

Secara default, aturan ini hanya melihat antarmuka, jenis, dan metode yang terlihat secara eksternal, tetapi ini dapat dikonfigurasi.

Deskripsi aturan

Menurut konvensi, nama elemen pemrograman tertentu dimulai dengan awalan tertentu.

Nama antarmuka harus dimulai dengan huruf besar 'I' diikuti dengan huruf besar lainnya. Aturan ini melaporkan pelanggaran untuk nama antarmuka seperti 'MyInterface' dan 'IsolatedInterface'.

Nama parameter jenis generik harus dimulai dengan huruf besar 'T' dan secara opsional dapat diikuti oleh huruf besar lainnya. Aturan ini melaporkan pelanggaran untuk nama parameter jenis generik seperti 'V' dan 'Jenis'.

Konvensi penamaan menyediakan tampilan umum untuk pustaka yang menargetkan runtime bahasa umum. Hal ini mengurangi kurva pembelajaran yang diperlukan untuk pustaka perangkat lunak baru, dan meningkatkan keyakinan pelanggan bahwa pustaka dikembangkan oleh seseorang yang memiliki keahlian dalam mengembangkan kode terkendali.

Mengonfigurasi kode yang akan dianalisis

Gunakan opsi berikut untuk mengonfigurasi bagian mana dari codebase Anda yang akan menjalankan aturan ini.

Anda dapat mengonfigurasi opsi ini hanya untuk aturan ini, untuk semua aturan yang berlaku, atau untuk semua aturan dalam kategori ini (Penamaan) yang diterapkannya. Untuk informasi selengkapnya, lihat Opsi konfigurasi aturan kualitas kode.

Menyertakan permukaan API tertentu

Anda dapat mengonfigurasi bagian mana dari basis kode yang akan menjalankan aturan ini, berdasarkan aksesibilitasnya. Misalnya, untuk menentukan bahwa aturan hanya boleh dijalankan pada permukaan API non-publik, tambahkan pasangan kunci-nilai berikut ke file .editorconfig di proyek Anda:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Parameter jenis karakter tunggal

Anda dapat mengonfigurasi apakah akan mengecualikan parameter jenis karakter tunggal atau tidak dari aturan ini. Misalnya, untuk menentukan bahwa aturan ini tidak boleh menganalisis parameter jenis karakter tunggal, tambahkan salah satu pasangan kunci-nilai berikut ke file .editorconfig di proyek Anda:

# 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

Catatan

Aturan ini tidak pernah diaktifkan untuk parameter jenis bernama T, misalnya, Collection<T>.

Cara memperbaiki pelanggaran

Ganti nama pengidentifikasi sehingga diawali dengan benar.

Kapan harus menekan peringatan

Jangan menyembunyikan peringatan dari aturan ini.

Contoh penamaan antarmuka

Cuplikan kode berikut menunjukkan antarmuka yang salah bernama:

' Violates this rule
Public Interface Book

    ReadOnly Property Title() As String

    Sub Read()

End Interface
// Violation.
public interface Book
{
    string Title
    {
        get;
    }

    void Read();
}

Cuplikan kode berikut memperbaiki pelanggaran sebelumnya dengan mengawali antarmuka dengan 'I':

// 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

Contoh penamaan parameter jenis

Cuplikan kode berikut menunjukkan parameter jenis generik yang salah bernama:

' Violates this rule
Public Class Collection(Of Item)

End Class
// Violation.
public class Collection<Item>
{
}

Cuplikan kode berikut memperbaiki pelanggaran sebelumnya dengan mengawali parameter jenis generik dengan 'T':

// 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