CA1721: Nama properti tidak boleh cocok dengan metode get
Properti | Nilai |
---|---|
ID Aturan | CA1721 |
Judul | Nama properti tidak boleh cocok dengan metode get |
Golongan | Penamaan |
Perbaikan bersifat disruptif atau non-disruptif | Merusak |
Diaktifkan secara default di .NET 9 | No |
Penyebab
Nama anggota dimulai dengan 'Get' dan jika tidak cocok dengan nama properti. Misalnya, jenis yang berisi metode yang bernama 'GetColor' dan properti yang bernama 'Color' menyebabkan pelanggaran aturan. Aturan ini tidak akan diaktifkan jika properti atau metode ditandai dengan ObsoleteAttribute.
Secara default, aturan ini hanya melihat anggota dan properti yang terlihat secara eksternal, tetapi ini dapat dikonfigurasi.
Deskripsi aturan
Metode dan properti "Get" harus memiliki nama yang membedakan fungsinya dengan jelas.
Konvensi penamaan menyediakan tampilan umum untuk pustaka yang menargetkan runtime bahasa umum. Konsistensi ini mengurangi waktu yang diperlukan untuk mempelajari pustaka perangkat lunak baru dan meningkatkan kepercayaan pelanggan bahwa pustaka dikembangkan oleh seseorang yang memiliki keahlian dalam mengembangkan kode terkelola.
Cara memperbaiki pelanggaran
Ubah nama sehingga tidak cocok dengan nama metode yang diawali dengan 'Get'.
Kapan harus menekan peringatan
Jangan menyembunyikan peringatan dari aturan ini. Salah satu pengecualian untuk aturan tersebut adalah jika metode "Dapatkan" disebabkan oleh penerapan IExtenderProvider antarmuka.
Menyembunyikan peringatan
Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.
#pragma warning disable CA1721
// The code that's violating the rule is on this line.
#pragma warning restore CA1721
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA1721.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
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 untuknya, 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 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
Nota
Ganti bagian XXXX
CAXXXX
dengan ID aturan yang berlaku.
Contoh
Contoh berikut berisi metode dan properti yang melanggar aturan ini.
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