Bagaimana cara menghilangkan pesan pelanggaran aturan penamaan di Visual Studio?


97

Saya baru saja menginstal Visual Studio 2017. Ketika saya membuka situs web yang sudah ada, saya mendapatkan semua jenis pesan peringatan seperti ini:

IDE1006 Pelanggaran aturan penamaan: Kata-kata ini harus dimulai dengan karakter huruf besar: swe_calc

Dalam kode itu didefinisikan sebagai:

[System.Runtime.InteropServices.DllImport("swedll32.dll")]
public static extern Int32 swe_calc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);

Ini juga terjadi dengan kontrol ASP.Net saya. Sebagai contoh DropDownList:

IDE1006 Pelanggaran aturan penamaan: Kata-kata ini harus dimulai dengan karakter huruf besar: ddlMonth_SelectedIndexChanged

Bagaimana cara menghilangkan jenis peringatan ini di bawah Visual Studio?


7
Kirimkan umpan balik ini ke VS. 2017 adalah versi baru dengan fitur-fitur baru, dan terkadang ini dimulai dengan terlalu agresif. Masukan Anda akan membantu menyesuaikan perilaku default.
Jimmy

3
Kedengarannya seperti bug. Ini bukan hanya tentang proyek lama tetapi juga tentang yang baru, dibuat di VS2017rc. VS membuat nama kontrol yang kemudian
ditandai

3
Saya mengalami kesalahan 1006 ini dengan penangan klik tombol yang dihasilkan MSVS, "btnList_Click ()". Dengan kata lain, MSVS2017 mengeluh tentang metode yang dibuatnya sendiri ! Tiba-tiba mengeluh tentang konvensi penamaan yang sudah ada sejak .Net 1.0 ! Sigh .. IDEAL SOLUSI: #pragma warning disable IDE1006. Ini memiliki keuntungan bahwa, karena ada dalam kode sumber, secara otomatis ke seluruh proyek (Anda tidak perlu menyinkronkan pengaturan MSVS per stasiun kerja).
paulsm4

Jawaban:


143

Ini adalah fitur baru yang dapat dikonfigurasi, jika Anda pergi ke

Pilihan → Editor Teks → Bahasa Anda (Saya melakukan C #) → Gaya Kode → Penamaan

Di sana saya pergi ke Kelola Gaya menambahkan Kasus unta (ada di sana tetapi Anda perlu menambahkannya ke pilihan Anda): pergi ke tanda "+", lalu tambahkan aturan Anda yang sesuai.

Penting : Tutup solusi Anda dan buka kembali agar perubahan diterapkan.

Misalnya, saya hanya menggunakan Kasus unta untuk metode pribadi. Jadi saya memilih Metode Pribadi dan meminta Gaya yang baru saya buat "Kasus unta" dan mengaturnya ke Saran Tingkat Permasalahan (Saya juga mempromosikannya ke atas).

Yang ada di dalamnya adalah semua "Saran" juga sehingga Anda juga dapat mematikan Pesan.


2
Itu sama persis dengan konvensi penamaan yang kami gunakan untuk metode privat - terima kasih! Sekarang saya hanya perlu mencari cara untuk mengaktifkan ini untuk semua orang tanpa harus mengatur opsi ini satu per satu ....
Matthew Watson

9
Cara cepat untuk mendapatkan opsi ini adalah dengan mengklik bola lampu "Tindakan Cepat", arahkan kursor ke "Perbaiki Pelanggaran Nama" dan klik tombol "Ubah Opsi Gaya".
Daren

6
Saya baru saja menghapus aturan
Paulustrious

2
Untuk berbagi pengaturan / aturan / gaya seperti itu dengan seluruh tim, lihat ini: stackoverflow.com/questions/11684457/…
kmote

5
Seluruh fitur penamaan tampaknya disadap dan tidak berfungsi dalam rilis Visual Studio 2019.
gpresland

29

Jika Anda ingin menyembunyikannya hanya di beberapa file atau area, Anda dapat menggunakan yang berikut ini:

#pragma warning disable IDE1006

// the code with the warning

#pragma warning restore IDE1006

2
Ini mungkin solusi yang "ideal"! Ini menyelesaikan masalah untuk seluruh tim.
paulsm4

24

Jika Anda perlu menyingkirkan pesan-pesan ini, Anda juga bisa menyembunyikannya.

masukkan deskripsi gambar di sini


1
Apa perbedaan antara Menekan mereka 'Dalam Sumber' vs 'Dalam File Supresi'?
TylerH

3
@TylerH "Dalam Sumber" adalah file tempat peringatan dilemparkan. "In Suppression File" adalah file yang dibuat untuk menyimpan semua peringatan Anda.
MistaGoustan

14

Anda dapat mengganti nama metode dan menambahkan nama ke atribut dengan EntryPointproperti.

[System.Runtime.InteropServices.DllImport("swedll32.dll", EntryPoint = "swe_calc")]
public static extern Int32 SweCalc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);

Saya juga memiliki kotak drop-down yang memberikan kesalahan yang sama: 'ddlMonth_SelectedIndexChanged'. Apakah semua kontrol asp.net saya juga harus diganti namanya?
SteveFerg

@SteveFerg itu terserah Anda - itu hanya peringatan.
Daniel A. White

1
Saya pikir sebanyak itu. Saya hanya ingin tahu apakah ada opsi di suatu tempat untuk mematikannya selain "membuka" kotak Pesan di Daftar Kesalahan.
SteveFerg

5

Jika Anda ingin menghilangkan atau membatalkan pesan peringatan dalam suatu metode, Anda dapat menggunakan SuppressMessage dari namespace System.Diagnostics.CodeAnalysis :

[SuppressMessage("Microsoft.Design", "IDE1006", Justification = "Rule violation aceppted due blah blah..")]

The Pembenaran properti adalah opsional, tapi itu layak menghabiskan beberapa saat menulis alasan, untuk membiarkan tahu tim Anda bahwa kode direvisi dan ok.


2

Jika Anda mengarahkan kursor ke pelanggaran aturan penamaan, Anda dapat menggunakan Alt + Enter untuk memunculkan gaya penamaan untuk bahasa itu. Anda juga dapat menggunakan Alat -> Opsi -> Editor Teks -> {bahasa} -> Gaya Kode -> Penamaan.

Untuk aturan camelCase pada Metode, Anda dapat menambahkan aturan baru dan menyetelnya ke Kasus Camel. Saat Anda menutup file kode dan membukanya lagi, Anda tidak akan melihat peringatan itu lagi. Tidak yakin mengapa ini bukan opsi default, tetapi tidak dalam kasus saya (menggunakan Kode Visual 15.8). Saya harus mengedit gaya agar sesuai dengan standar perusahaan kami.

Contoh C # Pengaturan Gaya Penamaan


2

Ini dapat dilakukan dengan menggunakan VS2017 & VS2019 normal menggunakan .editorconfigfile pengaturan, menggunakan aturan penamaan: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference

File dapat dibuat dengan tangan, atau di VS2019 Anda bisa mendapatkan Visual Studio untuk membuatnya untuk Anda dari preferensi Anda (yaitu setelah mengikuti konfigurasi prefs Anda seperti di https://stackoverflow.com/a/41131563/131701 ), dengan menekan buat file konfigurasi editor dari tombol pengaturan.

buat file konfigurasi editor dari tombol pengaturan

Misalnya, kumpulan aturan berikut akan mengaktifkan camelCase untuk semua metode non publik, dan mempertahankan aturan penamaan default lainnya yang disertakan dengan VS.

#### Naming styles ####

# Naming rules

dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i

dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.private_method_should_be_camelcasestyle.severity = suggestion
dotnet_naming_rule.private_method_should_be_camelcasestyle.symbols = private_method
dotnet_naming_rule.private_method_should_be_camelcasestyle.style = camelcasestyle

dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

# Symbol specifications

dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.interface.required_modifiers = 

dotnet_naming_symbols.private_method.applicable_kinds = method
dotnet_naming_symbols.private_method.applicable_accessibilities = private, protected, internal, protected_internal
dotnet_naming_symbols.private_method.required_modifiers = 

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.types.required_modifiers = 

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.non_field_members.required_modifiers = 

# Naming styles

dotnet_naming_style.pascal_case.required_prefix = 
dotnet_naming_style.pascal_case.required_suffix = 
dotnet_naming_style.pascal_case.word_separator = 
dotnet_naming_style.pascal_case.capitalization = pascal_case

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix = 
dotnet_naming_style.begins_with_i.word_separator = 
dotnet_naming_style.begins_with_i.capitalization = pascal_case

dotnet_naming_style.camelcasestyle.required_prefix = 
dotnet_naming_style.camelcasestyle.required_suffix = 
dotnet_naming_style.camelcasestyle.word_separator = 
dotnet_naming_style.camelcasestyle.capitalization = camel_case

0

nonaktifkan aturan. pesan kesalahan klik kanan dan pilih tingkat keparahan ke tidak ada


0

Apa yang ditegaskan aturan ini adalah bahwa bidang harus bersifat pribadi.

Anda bisa mengubahnya menjadi Properti dengan menambahkan {get; set;} setelah bidang.

Ini menghapus kesalahan untuk saya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.