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 9 | No |
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 berlaku untuk aturan tersebut. Untuk informasi selengkapnya, lihat Opsi konfigurasi aturan kualitas kode.
Menyertakan permukaan API tertentu
Anda dapat mengonfigurasi bagian basis kode mana yang akan dijalankan aturan ini, berdasarkan aksesibilitasnya, dengan mengatur opsi api_surface. 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
Catatan
Ganti bagian XXXX
CAXXXX
dengan ID aturan yang berlaku.
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