以下のようなソースコードを書いた場合
public static int Test = 3;の箇所で「CA2211:非定数フィールドは表示されません」と表示されます。
ドキュメントを読むと「読み取り専用でもない静的フィールドは、スレッド セーフではありません。」とあるのでメッセージの意味は理解できました。
しかし以下のようにコードを修正するとメッセージが抑制されます。get; set;があるのとないのでなにが違うのでしょうか?
public static int Test { get; set; } = 3;
環境はwindows10 21H2,visual studio 2022, .NET6.0です。
ソースコード
c#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6//Class1.cs 7namespace ConsoleApp1 8{ 9 public static class Class1 10 { 11 public static int Test = 3; 12 } 13} 14
c#
1//Program.cs 2namespace ConsoleApp1 3{ 4 class Program 5 { 6 static void Main() 7 { 8 Console.WriteLine(Class1.Test); 9 Class1.Test = 1; 10 Console.WriteLine(Class1.Test); 11 } 12 } 13}
回答1件
あなたの回答
tips
プレビュー