Aracılığıyla paylaş


Gereksiz değer atamasını kaldırma (IDE0059)

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:

  • try veya catch bloklarının içindeki ödevler.
  • İfade blokları içindeki using atamaları.
  • 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:

Seçenekler

Bunun seçenekleri, atma veya kullanılmayan bir yerel değişkenin kullanımını tercih edip etmeyeceğini belirtir:

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

Ayrıca bkz.