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
Önerilen eylem
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin