Visual Studio'da Adlandırma kuralı ihlali mesajlarından nasıl kurtulurum?


99

Visual Studio 2017'yi yeni yükledim. Mevcut bir web sitesini açtığımda, bunun gibi her türlü uyarı mesajını alıyorum:

IDE1006 Adlandırma kuralı ihlali: Bu kelimeler büyük harf karakterlerle başlamalıdır: swe_calc

Kodda şu şekilde tanımlanır:

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

Bu, ASP.Net denetimlerimde de oluşur. DropDownList örneği olarak:

IDE1006 Adlandırma kuralı ihlali: Bu sözcükler büyük harf karakterlerle başlamalıdır: ddlMonth_SelectedIndexChanged

Visual Studio altında bu tür uyarıları nasıl ortadan kaldırabilirim?


7
Bu geri bildirimi kesinlikle VS'ye gönderin. 2017, yeni özelliklere sahip yeni bir sürümdür ve bazen bunlar çok agresif başlayabilir. Geri bildiriminiz, varsayılan davranışın ayarlanmasına yardımcı olacaktır.
Jimmy

3
Böceğe benziyor. Bu sadece eski projelerle ilgili değil, aynı zamanda VS2017rc'de oluşturulan yenilerle de ilgili. VS, kontrol adlarını oluşturur ve ardından saldırgan olarak işaretler.
TaW

3
Bu 1006 hatasıyla MSVS tarafından oluşturulan bir düğme tıklama işleyicisi olan "btnList_Click ()" ile karşılaştım. Diğer bir deyişle MSVS2017, kendi yarattığı bir yöntemden şikayet ediyor ! Net 1.0'dan beri var olan bir adlandırma kuralı hakkında birden şikayet ediyor ! Kederlen .. İDEAL ÇÖZÜM: #pragma warning disable IDE1006. Bu, kaynak kodda olduğu için otomatik olarak proje çapında olması avantajına sahiptir (iş istasyonu başına herhangi bir MSVS ayarını senkronize etmeniz gerekmez).
paulsm4

Yanıtlar:


144

Yeni bir yapılandırılabilir özellik, eğer giderseniz

Seçenekler → Metin Editörü → Diliniz (C # yaptım) → Kod Stili → Adlandırma

Orada, Stilleri Yönet'e deve Kasası ekle'ye gittim (var ama seçilebilir duruma eklemeniz gerekiyor): "+" işaretine gidin, ardından kuralınızı buna göre ekleyin.

Önemli : Çözümünüzü kapatın ve değişikliklerin etkili olması için yeniden açın.

Örneğin, özel yöntemler için sadece camel Case kullanıyorum. Bu yüzden Özel Metodu seçtim ve yeni oluşturduğum "deve Vakası" için Tarz gerekli kıldım ve Önem Önerisi olarak ayarladım (bunu en üste çıkardım).

Tümü "Öneriler" de yerleşik olduğundan, Mesajları da kapatabilirsiniz.


2
Bu, özel yöntemler için kullandığımız adlandırma kuralının aynısı - teşekkürler! Şimdi, insanların bu seçeneği tek tek ayarlamak zorunda kalmadan bunu herkes için nasıl etkinleştirebileceğimi
Matthew Watson

9
Bu seçeneklere ulaşmanın hızlı bir yolu, "Hızlı İşlemler" ampulünü tıklamak, fareyle "Ad İhlalini Düzelt" seçeneğinin üzerine gelin ve "Stil Seçeneklerini Değiştir" düğmesini tıklamaktır.
Daren

6
Kuralları sildim
Paulustrious

2
Bu tür ayarları / kuralları / stilleri tüm bir takımla paylaşmak için,
şuna

6
Adlandırma özelliğinin tamamı bozuk görünüyor ve Visual Studio 2019 sürümünde işlevsel değil.
gpresland

30

Yalnızca bazı dosyalarda veya alanlarda bastırmak istiyorsanız, aşağıdakileri kullanabilirsiniz:

#pragma warning disable IDE1006

// the code with the warning

#pragma warning restore IDE1006

2
Bu muhtemelen "ideal" çözümdür! Tüm ekip için sorunu çözer.
paulsm4

24

Bu mesajlardan kurtulmanız gerekirse, onları da bastırabilirsiniz.

görüntü açıklamasını buraya girin


1
Bunları 'Kaynakta' Bastırma ile 'Bastırma Dosyasında' Bastırma arasındaki fark nedir?
TylerH

3
@TylerH "Kaynakta" uyarının verildiği dosyadır. "Gizleme Dosyasında", tüm uyarılarınızı saklamak için oluşturulmuş bir dosyadır.
MistaGoustan

14

Yöntemi yeniden adlandırabilir ve adı özelliğe sahip özniteliğe ekleyebilirsiniz EntryPoint.

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

Aynı hatayı veren bir açılır kutum da var: 'ddlMonth_SelectedIndexChanged'. Tüm asp.net kontrollerimin de yeniden adlandırılması gerekiyor mu?
SteveFerg

@SteveFerg bu size kalmış - bu sadece bir uyarı.
Daniel A. White

1
Ben de öyle düşündüm. Hata Listesindeki Mesajlar kutusunun "işaretini kaldırmak" dışında bir yerde onları kapatmak için bir seçenek olup olmadığını merak ediyordum.
SteveFerg

5

Bir yöntemde uyarı mesajını atlamak veya geçersiz kılmak istiyorsanız, SuppressMessage'ı System.Diagnostics.CodeAnalysis ad alanından kullanabilirsiniz :

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

Gerekçe özelliği isteğe bağlıdır, ama onun değerinde kod revize edilerek Tamam olduğunu ekibinizin haberdar etmenin bir gerekçesi yazılarak bir an harcama.


2

Adlandırma kuralı ihlalinin üzerine gelirseniz, o dil için adlandırma stillerini görüntülemek için Alt + Enter tuşlarını kullanabilirsiniz. Ayrıca Araçlar -> Seçenekler -> Metin Düzenleyici -> {dil} -> Kod Stili -> Adlandırma'yı da kullanabilirsiniz.

Yöntemlerdeki camelCase kuralları için yeni bir kural ekleyebilir ve bunu Camel Case olarak ayarlayabilirsiniz. Kod dosyasını kapatıp tekrar açtığınızda, artık bu uyarıyı görmemelisiniz. Bunun neden varsayılan bir seçenek olmadığından emin değilim, ancak benim durumumda değildi (Görsel Kod 15.8 kullanarak). Stilleri şirket standartlarımıza uyacak şekilde düzenlemem gerekiyordu.

Örnek C # Adlandırma Stilleri Ayarları


2

Bu .editorconfig, adlandırma kuralları kullanılarak ayarlar dosyası kullanılarak normal VS2017 ve VS2019 kullanılarak yapılabilir : https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference

Dosya elle oluşturulabilir veya VS2019'da Visual Studio'nun tercihlerinize göre oluşturmasını sağlayabilirsiniz (örn. Https://stackoverflow.com/a/41131563/131701'deki gibi tercihlerinizi yapılandırdıktan sonra ) ayarlar düğmesinden düzenleyici yapılandırma dosyası oluştur.

ayarlar düğmesinden düzenleyici yapılandırma dosyası oluştur

Örneğin, aşağıdaki kurallar grubu, tüm genel olmayan yöntemler için camelCase'i etkinleştirecek ve VS ile birlikte gelen diğer varsayılan adlandırma kurallarını koruyacaktır.

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

kuralı devre dışı bırakın. hata mesajını sağ tıklayın ve önemsizliği seçin


0

Bu kuralın iddia ettiği şey, alanların özel olması gerektiğidir.

Alandan sonra {get; set;} ekleyerek bunu bir Özelliğe dönüştürebilirsiniz .

Bu benim için hatayı kaldırdı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.