Parantez tercihleri (IDE0047 ve IDE0048)
Bu makalede, ve IDE0048
ile ilgili iki kural IDE0047
açıklanmaktadır.
Özellik | Değer |
---|---|
Kural Kimliği | IDE0047 |
Başlık | Gereksiz parantezleri kaldırma |
Kategori | Stil |
Alt Kategori | Dil kuralları (parantez tercihleri) |
Geçerli diller | C# ve Visual Basic |
Tanıtılan sürüm | Visual Studio 2017 |
Seçenekler | dotnet_style_parentheses_in_arithmetic_binary_operators |
dotnet_style_parentheses_in_relational_binary_operators |
|
dotnet_style_parentheses_in_other_binary_operators |
|
dotnet_style_parentheses_in_other_operators |
Özellik | Değer |
---|---|
Kural Kimliği | IDE0048 |
Başlık | Netlik için parantez ekleme |
Kategori | Stil |
Alt Kategori | Dil kuralları (parantez tercihleri) |
Geçerli diller | C# ve Visual Basic |
Tanıtılan sürüm | Visual Studio 2017 |
Seçenekler | dotnet_style_parentheses_in_arithmetic_binary_operators |
dotnet_style_parentheses_in_relational_binary_operators |
|
dotnet_style_parentheses_in_other_binary_operators |
|
dotnet_style_parentheses_in_other_operators |
Genel Bakış
Bu bölümdeki stil kuralları aritmetik, ilişkisel ve diğer ikili işleçlerin önceliğini netleştirmek için parantez kullanımı da dahil olmak üzere parantez tercihlerini ilgilendiriyor.
Seçenekler
Bu kural, işleç türüne göre tercihleri belirtmek için ilişkili seçeneklere sahiptir:
- Aritmetik ikili işleçler - dotnet_style_parentheses_in_arithmetic_binary_operators
- İlişkisel ikili işleçler - dotnet_style_parentheses_in_relational_binary_operators
- Diğer ikili işleçler - dotnet_style_parentheses_in_other_binary_operators
- Diğer işleçler - dotnet_style_parentheses_in_other_operators
Seçenekleri yapılandırma hakkında bilgi için bkz. Seçenek biçimi.
dotnet_style_parentheses_in_arithmetic_binary_operators
Özellik | Değer | Açıklama |
---|---|---|
Seçenek adı | dotnet_style_parentheses_in_arithmetic_binary_operators | |
Seçenek değerleri | always_for_clarity |
Aritmetik işleç önceliğini netleştirmek için parantezleri tercih edin |
never_if_unnecessary |
Aritmetik işleç önceliği belirgin olduğunda parantez olmamasını tercih edin | |
Varsayılan seçenek değeri | always_for_clarity |
Aritmetik ikili işleçler şunlardır: , , , , , -
, <<
, ^
>>
&
ve .|
+
%
/
*
// dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
var v = a + (b * c);
// dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary
var v = a + b * c;
' dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
Dim v = a + (b * c)
' dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary
Dim v = a + b * c
dotnet_style_parentheses_in_relational_binary_operators
Özellik | Değer | Açıklama |
---|---|---|
Seçenek adı | dotnet_style_parentheses_in_relational_binary_operators | |
Seçenek değerleri | always_for_clarity |
İlişkisel işleç önceliğini netleştirmek için parantezleri tercih edin |
never_if_unnecessary |
İlişkisel işleç önceliği belirgin olduğunda parantez olmamasını tercih edin | |
Varsayılan seçenek değeri | always_for_clarity |
İlişkisel ikili işleçler şunlardır: >
, <
, <=
, >=
, is
, as
, ==
ve !=
.
// dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
var v = (a < b) == (c > d);
// dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary
var v = a < b == c > d;
' dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
Dim v = (a < b) = (c > d)
' dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary
Dim v = a < b = c > d
dotnet_style_parentheses_in_other_binary_operators
Özellik | Değer | Açıklama |
---|---|---|
Seçenek adı | dotnet_style_parentheses_in_other_binary_operators | |
Seçenek değerleri | always_for_clarity |
Diğer ikili işleç önceliğini netleştirmek için parantezleri tercih edin |
never_if_unnecessary |
Diğer ikili işleç önceliği belirgin olduğunda parantez olmamasını tercih edin | |
Varsayılan seçenek değeri | always_for_clarity |
Diğer ikili işleçler şunlardır: &&
, ||
ve ??
.
// dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
var v = a || (b && c);
// dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary
var v = a || b && c;
' dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
Dim v = a OrElse (b AndAlso c)
' dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary
Dim v = a OrElse b AndAlso c
dotnet_style_parentheses_in_other_operators
Özellik | Değer | Açıklama |
---|---|---|
Seçenek adı | dotnet_style_parentheses_in_other_operators | |
Seçenek değerleri | always_for_clarity |
Diğer işleç önceliğini netleştirmek için parantezleri tercih edin |
never_if_unnecessary |
Diğer işleç önceliği belirgin olduğunda parantez olmamasını tercih edin | |
Varsayılan seçenek değeri | never_if_unnecessary |
Bu seçenek aşağıdakiler dışındaki işleçler için geçerlidir:
*
, /
, %
, +
, -
, <<
, >>
, &
, ^
, |
>
, <
, <=
, >=
, is
, as
, ==
, !=
&&
, ||
, ??
// dotnet_style_parentheses_in_other_operators = always_for_clarity
var v = (a.b).Length;
// dotnet_style_parentheses_in_other_operators = never_if_unnecessary
var v = a.b.Length;
' dotnet_style_parentheses_in_other_operators = always_for_clarity
Dim v = (a.b).Length
' dotnet_style_parentheses_in_other_operators = never_if_unnecessary
Dim v = a.b.Length
Uyarıyı gizleme
Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza önişlemci yönergeleri ekleyin.
#pragma warning disable IDE0047 // Or IDE0048
// The code that's violating the rule is on this line.
#pragma warning restore IDE0047 // Or IDE0048
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.IDE0047.severity = none
dotnet_diagnostic.IDE0048.severity = none
Tüm kod stili kurallarını devre dışı bırakmak için, kategorinin önem derecesini Style
none
yapılandırma dosyasında olarak ayarlayın.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.