Bagikan melalui


CA1711: Pengidentifikasi tidak boleh memiliki sufiks yang salah

Properti Nilai
ID Aturan CA1711
Judul Pengidentifikasi tidak boleh memiliki akhiran yang salah
Golongan Penamaan
Perbaikan bersifat disruptif atau non-disruptif Merusak
Diaktifkan secara default di .NET 8 Tidak

Penyebab

Pengidentifikasi memiliki akhiran yang salah.

Secara default, aturan ini hanya melihat pengidentifikasi yang terlihat secara eksternal, tetapi ini dapat dikonfigurasi.

Deskripsi aturan

Menurut konvensi, hanya nama jenis yang memperluas jenis dasar tertentu atau yang mengimplementasikan antarmuka tertentu, atau jenis yang berasal dari jenis ini, harus diakhiri dengan akhiran khusus yang dipesan. Nama jenis lain tidak boleh menggunakan sufiks yang dicadangkan ini.

Tabel berikut mencantumkan akhiran yang dipesan serta jenis dasar dan antarmuka yang terkait dengannya.

Akhiran Jenis dasar/Antarmuka
Atribut System.Attribute
Koleksi System.Collections.ICollection

System.Collections.IEnumerable

System.Collections.Queue

System.Collections.Stack

System.Collections.Generic.ICollection<T>

System.Data.DataSet

System.Data.DataTable
Kamus System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey,TValue>
EventArgs System.EventArgs
EventHandler Delegasi penanganan aktivitas
Pengecualian System.Exception
Izin System.Security.IPermission
Antrean System.Collections.Queue
Tumpukan System.Collections.Stack
Stream System.IO.Stream

Selain itu, akhiran berikut tidak boleh digunakan:

  • Delegate
  • Enum
  • Impl (gunakan Core sebagai gantinya)
  • Ex atau akhiran serupa untuk membedakannya dari versi yang lebih lama dari jenis yang sama
  • Flag atau Flags untuk jenis enum

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. Untuk informasi selengkapnya, lihat Panduan penamaan: Kelas, Struktur, dan Antarmuka.

Cara memperbaiki pelanggaran

Hapus akhiran dari nama jenis.

Kapan harus menekan peringatan

Jangan menekan peringatan dari aturan ini kecuali akhiran memiliki arti yang tidak ambigu dalam domain aplikasi.

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 CA1711
// The code that's violating the rule is on this line.
#pragma warning restore CA1711

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.

[*.{cs,vb}]
dotnet_diagnostic.CA1711.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, 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

Izinkan akhiran

Anda dapat mengonfigurasi daftar akhiran yang diizinkan, dengan setiap akhiran dipisahkan oleh karakter pipa ("|"). Misalnya, untuk menentukan bahwa aturan tidak boleh berjalan terhadap akhiran Bendera dan Bendera, tambahkan pasangan kunci-nilai berikut ke file .editorconfig di proyek Anda:

dotnet_code_quality.ca1711.allowed_suffixes = Flag|Flags

Baca juga