Dil ve gereksiz kurallar
Kod stili dil kuralları, .NET programlama dillerinin çeşitli yapılarının (örneğin, değiştiriciler ve parantezler) nasıl kullanıldığını etkiler.
Bu kategori, kod tabanının gereksiz olan ve yeniden düzenlenebilen veya kaldırılabilir bölümlerini tanımlayan kuralları da içerir. Gereksiz kodun varlığı aşağıdaki sorunlardan birini daha gösterir:
- Okunabilirlik: Okunabilirliği gereksiz yere düşüren kod.
- Bakım: Yeniden düzenlemeden sonra artık kullanılmayan ve gereksiz yere korunan kod.
- Performans: Yan etkisi olmayan ve gereksiz performans ek yüküne yol açan gereksiz hesaplama.
- İşlevsellik: Kodda gerekli kodu yedekli hale getiren işlevsel sorun. Örneğin, IDE0060 yöntemin yanlışlıkla bir giriş parametresini yoksaydığı kullanılmayan parametreleri işaretler.
Dil kuralları aşağıdaki kategorilere ayrılır:
- .NET stil kuralları: Hem C# hem de Visual Basic için geçerli kurallar. Bu kuralların seçenek adları ön ekiyle
dotnet_style_
başlar. - C# stili kuralları: C# koduna özgü kurallar. Bu kuralların seçenek adları ön ekiyle
csharp_style_
başlar. - Visual Basic stil kuralları: Visual Basic koduna özgü kurallar. Bu kuralların seçenek adları ön ekiyle
visual_basic_style_
başlar.
Seçenek biçimi
Dil kurallarının çoğunda tercih edilen stili özelleştirmek için bir veya daha fazla ilişkili seçenek vardır. Örneğin, Use simple 'using' deyimi (IDE0063), bir bildirimi mi yoksa using
deyimi mi tercih using
ettiğinizi tanımlamanızı sağlayan ilişkili seçeneğe csharp_prefer_simple_using_statement
sahiptir. Kural, belirtilen düzeyde hangi seçenekleri seçerseniz (örneğin, uyarı veya hata) zorlar.
Dil kuralları seçenekleri aşağıdaki biçime sahip bir yapılandırma dosyasında belirtilebilir:
option_name = value
(Visual Studio 2019 ve üzeri)
veya
option_name = value:severity
Value
Her dil kuralı için, stilin ne zaman veya ne zaman tercihleneceğini tanımlayan bir değer belirtirsiniz. Birçok kural değerini
true
kabul eder (bu stili tercih eder) veyafalse
(bu stili tercih etmeyin). Diğer kurallar veyanever
gibiwhen_on_single_line
değerleri kabul eder.Önem derecesi (Visual Studio 2019 ve sonraki sürümlerde isteğe bağlı)
Kuralın ikinci bölümü, kuralın önem düzeyini belirtir. .NET 9 ve sonraki sürümlerde önem derecesi her zaman dikkate alınmaktadır; yani geliştirme IDE'leri içinde ve komut satırı derlemeleri sırasında. .NET 8 ve önceki sürümlerde, bu önem derecesi ayarı derleme sırasında değil yalnızca Visual Studio gibi geliştirme IDE'leri içinde dikkate alır.
.NET 8 SDK'sını veya önceki bir sürümü kullanıyorsanız ve önem derecesine derleme zamanında uyulmasını istiyorsanız, bunu iki yoldan biriyle yapabilirsiniz:
- <AnalysisLevel> veya
<AnalysisLevelStyle>
özelliğini veya üzeri olarak9.0
ya da olarakpreview
ayarlayın. - Bunun yerine çözümleyiciler için kimlik tabanlı önem derecesi yapılandırma söz dizimini kullanarak önem derecesini ayarlayın. Söz dizimi biçimindedir
dotnet_diagnostic.<rule ID>.severity = <severity>
, örneğin,dotnet_diagnostic.IDE0040.severity = warning
. Daha fazla bilgi için bkz . önem düzeyi.
- <AnalysisLevel> veya
İpucu
Visual Studio 2019'dan başlayarak, bir stil ihlali oluştuktan sonra Hızlı Eylemler ampul menüsünden kod stili kurallarını yapılandırabilirsiniz.
Kural dizini
Dil ve gereksiz kod kuralları, ifade düzeyi tercihleri, kod bloğu tercihleri ve değiştirici tercihler gibi alt kategorilere ayrılır.
using
yönerge tercihleri- Kod bloğu tercihleri
- İfade gövdeli üyeler
- İfade düzeyi tercihleri
- Alan tercihleri
- Dil anahtar sözcüğü ile çerçeve türü tercihleri karşılaştırması
- Değiştirici tercihleri
- Yeni satır tercihleri
- Null denetimi tercihleri
- Parametre tercihleri
- Parantez tercihleri
- Desen eşleştirme tercihleri
- Gizleme tercihleri
This.
veme.
tercihlerivar
Tercihler
using
yönerge tercihleri
.NET stil kuralları (C# ve Visual Basic):
C# stil kuralları:
Kod bloğu tercihleri
C# stil kuralları:
- Ayraç ekleme (IDE0011)
- Basit 'using' deyimini kullanma (IDE0063)
- Ad alanı bildirim tercihleri (IDE0160, IDE0161)
- Gereksiz lambda ifadesini kaldırma (IDE0200)
- Üst düzey deyimlere dönüştürme (IDE0210)
- 'Program.Main' stil programına dönüştür (IDE0211)
- Birincil oluşturucu kullanma (IDE0290)
İfade gövdeli üyeler
C# stil kuralları:
- Oluşturucular için ifade gövdesini kullanma (IDE0021)
- Yöntemler için ifade gövdesini kullanma (IDE0022)
- İşleçler için ifade gövdesini kullanma (IDE0023, IDE0024)
- Özellikler için ifade gövdesini kullanma (IDE0025)
- Dizin oluşturucular için ifade gövdesini kullanma (IDE0026)
- Erişimciler için ifade gövdesini kullanma (IDE0027)
- Lambdalar için ifade gövdesini kullanma (IDE0053)
- Yerel işlevler için ifade gövdesini kullanma (IDE0061)
İfade düzeyinde tercihler
.NET stil kuralları (C# ve Visual Basic):
- Adı basitleştirme (IDE0001)
- Üye erişimini basitleştirme (IDE0002)
- Gereksiz atamayı kaldırma (IDE0004)
- Switch deyimine eksik servis talepleri ekleme (IDE0010)
- Nesne başlatıcıları kullanma (IDE0017)
- Koleksiyon başlatıcıları kullanma (IDE0028)
- Null denetim basitleştirilebilir (IDE0029, IDE0030, IDE0270)
- Null yayma (IDE0031) kullanma
- Otomatik uygulanan özelliği kullanma (IDE0032)
- Açıkça sağlanan tanımlama grubu adını (IDE0033) kullanın
- Ulaşılamayan kodu kaldırma (IDE0035)
- Çıkarsanan üye adlarını kullanma (IDE0037)
- 'is null' denetimi kullan (IDE0041)
- Atama için koşullu ifade kullanma (IDE0045)
- Dönüş için koşullu ifade kullanma (IDE0046)
- Anonim türü tanımlama grubuna dönüştürme (IDE0050)
- Kullanılmayan özel üyeyi kaldırma (IDE0051)
- Okunmamış özel üyeyi kaldırma (IDE0052)
- Bileşik atama kullanma (IDE0054, IDE0074)
- Gereksiz ifade değerini kaldırma (IDE0058)
- Gereksiz değer atamasını kaldırma (IDE0059)
- 'System.HashCode.Combine' kullanma (IDE0070)
- İlişkilendirmeyi basitleştirme (IDE0071)
- Koşullu ifadeyi basitleştirme (IDE0075)
nameof
Dönüştürtypeof
(IDE0082)- Gereksiz eşitlik işlecini kaldırma (IDE0100)
- LINQ ifadesini basitleştirme (IDE0120)
- Ad alanı klasör yapısıyla eşleşmiyor (IDE0130)
C# stil kuralları:
- Throw ifadesini kullanma (IDE0016)
- Satır içi değişken bildirimi (IDE0018)
- 'default' ifadesini basitleştirme (IDE0034)
- Lambda yerine yerel işlevi kullanma (IDE0039)
- Değişken bildirimini kaldırma (IDE0042)
- Dizin işlecini kullanma (IDE0056)
- Aralık işlecini kullanma (IDE0057)
- İfadeye eksik servis talepleri ekleme (IDE0072)
- Gereksiz gizleme işlecini kaldırma (IDE0080)
- İfadeyi basitleştirme
new
(IDE0090) - Gereksiz atma kaldırma (IDE0110)
- Tür denetimi (IDE0150) yerine 'null' denetimini tercih edin
- Değerleri değiştirmek için tanımlama grubu kullanma (IDE0180)
- foreach döngüsüne açık atama ekleme (IDE0220)
- UTF-8 dize değişmez değeri kullanma (IDE0230)
- Null atanabilir yönerge yedekli (IDE0240)
- Null atanabilir yönerge gereksiz (IDE0241)
- Dizi için koleksiyon ifadesini kullanma (IDE0300)
- Boş (IDE0301) için koleksiyon ifadesi kullanma
- Stack alloc için koleksiyon ifadesini kullanma (IDE0302)
- (IDE0303) için
Create()
koleksiyon ifadesini kullanma - Oluşturucu için koleksiyon ifadesi kullanma (IDE0304
- Akıcı (IDE0305) için koleksiyon ifadesi kullanma
Visual Basic stil kuralları:
- Kaldır
ByVal
(IDE0081) - Desen eşleştirme (
IsNot
işleç) kullanma (IDE0084) - Nesne oluşturmayı basitleştirme (IDE0140)
Alan tercihleri
.NET stil kuralları (C# ve Visual Basic):
Dil anahtar sözcüğü ile çerçeve türü tercihleri karşılaştırması
.NET stil kuralları (C# ve Visual Basic):
Değiştirici tercihleri
.NET stil kuralları (C# ve Visual Basic):
C# stil kuralları:
- Yerel işlevi statik yapma (IDE0062)
- Yapı alanlarını yazılabilir hale getirme (IDE0064)
- Yapı 'salt okunur' yapılabilir (IDE0250)
- Üye 'salt okunur' yapılabilir (IDE0251)
Yeni satır tercihleri
- Birden çok boş satıra izin ver (IDE2000)
- Aynı satırda eklenmiş deyimlere izin ver (IDE2001)
- Ardışık ayraçlar arasında boş satırlara izin ver (IDE2002)
- Blok sonrasında hemen allow deyimi (IDE2003)
- Oluşturucu başlatıcısında iki nokta üst üste geçtikten sonra boş satıra izin ver (IDE2004)
- Koşullu ifadede belirteç sonrasında boş satıra izin ver (IDE2005)
- Ok ifadesinde belirteç sonrasında boş satıra izin ver (IDE2006)
Null denetleme tercihleri
C# stil kuralları:
Parametre tercihleri
.NET stil kuralları (C# ve Visual Basic):
Parantez tercihleri
.NET stil kuralları (C# ve Visual Basic):
Desen eşleştirme tercihleri
C# stil kuralları:
- 'as' ve ardından 'null' denetimi (IDE0019) önlemek için desen eşleştirmeyi kullanın
- 'is' denetiminin ardından bir atama (IDE0020, IDE0038) olmasını önlemek için desen eşleştirmeyi kullanın
- Switch ifadesini kullanma (IDE0066)
- Desen eşleştirmeyi kullanma (IDE0078 ve IDE0260)
- Desen eşleştirme (
not
işleç) kullanma (IDE0083) - Özellik düzenini basitleştirme (IDE0170)
Gizleme tercihleri
.NET stil kuralları (C# ve Visual Basic):
This.
ve me.
tercihleri
.NET stil kuralları (C# ve Visual Basic):
var
Tercihler
C# stil kuralları: