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

Özellik Değer
Kural Kimliği IDE0059
Başlık Gereksiz değer atamasını kaldırma
Kategori Stil
Alt kategori Gereksiz kod kuralları (ifade düzeyi tercihleri)
Geçerli diller C# ve Visual Basic
Seçenekler csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference

Genel Bakış

Bu kural gereksiz değer atamalarına bayrak ekler. Örneğin:

// 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ı at (yalnızca C# ) veya hiç kullanılmayan bir yerel değişkenle değiştirin. At, kullanılmayan bir değeri atma amacını açıkça göstererek kod netliğini artırır.

    _ = Compute();
    int v = Compute2();
    

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

Özellik 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ğer atarken atma kullanmayı 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_unused_value_assignment_preference

Özellik Değer Açıklama
Seçenek adı visual_basic_style_unused_value_assignment_preference
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, yapılandırma dosyasındaki önem derecesini noneolarak ayarlayın.

[*.{cs,vb}]
dotnet_diagnostic.IDE0059.severity = none

Kod stili kuralların tümünü devre dışı bırakmak için, kategorinin Stylenoneönem derecesini 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.

Özellik Değer
Kural Kimliği IDE0059
Başlık Değer kullanılmadı
Kategori Stil
Geçerli diller F#
Seçenekler Hiçbiri

Genel Bakış

Bu kural gereksiz değer atamalarına bayrak ekler. Örneğin, answer aşağıdaki kod parçacığında kullanılmaz:

type T() =
    let answer = 42

Ayrıca bkz.