Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
| Mülk | Değer |
|---|---|
| Kural Kimliği | IDE0059 |
| Başlık | Gereksiz değer atamasını kaldırma |
| Kategori | Üslup |
| Alt Kategori | Gereksiz kod kuralları (ifade düzeyi tercihleri) |
| Geçerli diller | C# ve Visual Basic |
| Seçenekleri | csharp_style_unused_value_assignment_preference |
visual_basic_style_unused_value_assignment_preference |
Genel bakış
Bu kural gereksiz değer atamalarını işaretler. Mesela:
// IDE0059: value written to 'v' is never
// read, so assignment to 'v' is unnecessary.
int v = Compute();
v = Compute2();
Bu ihlali düzeltmek için aşağıdaki eylemlerden birini gerçekleştirebilirsiniz:
Atamanın sağ tarafındaki ifadenin yan etkisi yoksa, ifadeyi veya atama deyiminin tamamını kaldırın. Bu, gereksiz hesaplamalardan kaçınarak performansı artırır.
int v = Compute2();Atamanın sağ tarafındaki ifadenin yan etkileri varsa, atamanın sol tarafını bir yok sayma (yalnızca C# için) veya hiç kullanılmayan bir yerel değişkenle değiştirin. Değersiz kılmalar, kullanılmayan bir değeri göz ardı etme niyetini açıkça göstererek kodun netliğini artırır.
_ = Compute(); int v = Compute2();
Bilinen sınırlamalar
Bu kural belirli kod bağlamlarında çalışmaz. Çözümleyici, aşağıdaki senaryolarda gereksiz değer atamalarını işaretleyemiyor:
-
tryveyacatchbloklarının içindeki ödevler. - İfade blokları içindeki
usingatamaları. - Lambda ifadeleri veya temsilci gövdeleri içinde atanan değişkenler.
- İfade ağaçlarının (
Expression<Func<T>>) varlığındaki değişkenler.
Bu sınırlamalar aşağıdaki GitHub sorunlarında izlenir:
- IDE0059 her zaman raporlanmaz
- Try/catch deyimleri içerisinde çalışmayan IDE0059'un algılanmaması
- IDE0059 anahtar sözcüğünü kullanarak bir kod bloğunun içinde tetiklenmez
- IDE0059 ifade ağaçlarıyla çalışmaz
- Kullanılmayan değişkeni/değerleri kaldırma (üst sorun)
Seçenekler
Bunun seçenekleri, atma veya kullanılmayan bir yerel değişkenin kullanımını tercih edip etmeyeceğini belirtir:
- C# - kullanılmayan değer atama tercihi csharp_style_unused_value_assignment_preference
- Visual Basic - visual_basic_style_unused_value_assignment_preference
Seçenekleri yapılandırma hakkında bilgi için bkz. Seçenek biçimi.
csharp_style_unused_value_assignment_preference
| Mülk | Değer | Açıklama |
|---|---|---|
| Seçenek adı | csharp_style_unused_value_assignment_preference | |
| Geçerli diller | C# | |
| Seçenek değerleri | discard_variable |
Kullanılmayan bir değeri atarken yok saymayı tercih edin |
unused_local_variable |
Kullanılmayan bir değer atarken yerel değişken kullanmayı tercih edin | |
| varsayılan seçenek değeri | discard_variable |
// csharp_style_unused_value_assignment_preference = discard_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
_ = wordCount.TryGetValue(searchWord, out var count);
return count;
}
// csharp_style_unused_value_assignment_preference = unused_local_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
var unused = wordCount.TryGetValue(searchWord, out var count);
return count;
}
visual_basic_style_kullanılmayan_değer_atama_tercihi
| Mülk | Değer | Açıklama |
|---|---|---|
| Seçenek adı | visual_basic_style_kullanılmayan_değer_atama_tercihi | |
| Geçerli diller | Visual Basic | |
| Seçenek değerleri | unused_local_variable |
Kullanılmayan bir değer atarken yerel değişken kullanmayı tercih edin |
| varsayılan seçenek değeri | unused_local_variable |
' visual_basic_style_unused_value_assignment_preference = unused_local_variable
Dim unused = Computation()
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 ön işlemci yönergeleri ekleyin.
#pragma warning disable IDE0059
// The code that's violating the rule is on this line.
#pragma warning restore IDE0059
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için önem derecesini noneyapılandırma dosyasında olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.IDE0059.severity = none
Tüm kod stili kurallarını devre dışı bırakmak için kategori Style önem derecesini noneyapı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.
| Mülk | Değer |
|---|---|
| Kural Kimliği | IDE0059 |
| Başlık | Değer kullanılmadı |
| Kategori | Üslup |
| Geçerli diller | F# |
| Seçenekleri | Hiç kimse |
Genel bakış
Bu kural gereksiz değer atamalarını işaretler. Örneğin, answer aşağıdaki kod parçacığında kullanılmaz:
type T() =
let answer = 42