Aracılığıyla paylaş


Uyarı CA2013: ReferenceEquals'i değer türleriyle kullanmayın

.NET kod çözümleyicisi kuralı CA2013 , .NET 5'te başlayarak varsayılan olarak etkindir. Eşitlik için bir veya daha fazla değer türünü karşılaştırmak için kullanılan tüm kodlar ReferenceEquals(Object, Object) için bir derleme uyarısı oluşturur.

Açıklama değiştirildi

.NET 5'den başlayarak .NET SDK'sı .NET kaynak kodu çözümleyicilerini içerir. Ca2013 de dahil olmak üzere bu kuralların bazıları varsayılan olarak etkindir. Projeniz bu kuralı ihlal eden bir kod içeriyorsa ve uyarıları hata olarak değerlendirecek şekilde yapılandırılmışsa, bu değişiklik derlemenizi bozabilir.

Kural CA2013, eşitlik için bir veya daha fazla değer türünü karşılaştırmak için kullanılan örnekleri ReferenceEquals(Object, Object) bulur. Değerler karşılaştırılamadan önce kutulandığından, değer türlerini eşitlik için bu şekilde karşılaştırmak yanlış sonuçlara yol açabilir. ReferenceEquals(Object, Object) , karşılaştırılan değerler bir değer türünün aynı örneğini temsil ediyor olsa bile döndürür false .

Sürüm kullanıma sunulmuştur

5.0

  • Kodu, gibi uygun bir eşitlik işleci kullanacak şekilde ==değiştirin. Bu uyarıyı gizlememelisiniz.

  • Kod analizini tamamen devre dışı bırakmak için proje dosyanızda olarak false ayarlayınEnableNETAnalyzers. Daha fazla bilgi için bkz . EnableNETAnalyzers.

Etkilenen API’ler