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.
CA2019:
| Özellik | Değer |
|---|---|
| Kural Kimliği | CA2019 |
| Başlık |
ThreadStatic alanlar satır içi başlatma kullanmamalıdır |
| Kategori | Güvenilirlik |
| Düzeltme bozucu ya da bozmayan olabilir | Kesintisiz |
| .NET 10'da varsayılan olarak etkin | Öneri olarak |
| Geçerli diller | C# ve Visual Basic |
Neden
ThreadStaticAttribute ek açıklaması olan bir alan satır içinde veya açıkça bir static (Visual Basic’te Shared) oluşturucusunda başlatılır.
Kural açıklaması
ThreadStaticAttribute alanlar, tembel bir şekilde ihtiyaç duyulduğunda başlatılmalıdır; satır içi başlatma veya bir static (Shared Visual Basic'te) oluşturucu ile açıkça başlatma yapılmamalıdır. Oluşturucu static yalnızca türün static oluşturucuyu çalıştıran iş parçacığında alanı başlatır.
İhlal nasıl düzeltilir?
Bir ihlali düzeltmek için satır içi veya static oluşturucu başlatmasını kaldırın. Bunun yerine, alanı ilk kullanımda başlatın.
Örnek
Aşağıdaki kod parçacığı CA2019 ihlalini gösterir:
class C
{
[ThreadStatic]
private static Object obj = new();
}
Class C
<ThreadStatic>
Private Shared obj As New Object()
End Class
Aşağıdaki kod parçacığı bir ihlalin nasıl düzeltileceğini gösterir:
class C
{
[ThreadStatic]
private static Object obj;
static void S1()
{
obj ??= new Object();
}
}
Class C
<ThreadStatic>
Private Shared obj
Shared Sub S1()
If obj Is Nothing Then
obj = New Object()
End If
End Sub
End Class
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan gelen bir uyarıyı engellemek güvenlidir, ancak uygulamanız beklenmeyen davranışlar gösterebilir.