同じプログラム内の 2 つのプロジェクトで static メンバーにアクセスしようとしていますよね? 2 つの別々のプログラムではありません。
もしそうなら、あなたが持っている誤解は、値型と参照型の間にあると思います。両方のプロジェクトから共有変数を更新できますが、それらの値は反映されません。使用している 2 つのクラスではなく、1 つのクラスを使用してデモを行います。
static class Test
{
public static bool logged_in;
}
Test.logged_in = true;
var t = Test.logged_in;
Console.WriteLine(l); // prints true
Test.logged_in = false;
var f = Test.logged_in;
Console.WriteLine(f); // prints false
Console.WriteLine(t); // prints true
t
static メンバーを変更したときにの値が更新されなかったことに注意してください。これbool
は、参照型ではなく値型であるためです。したがって、値を要求すると、変数への参照ではなく、値のコピーを受け取ります。
ただし、静的メンバーが参照型である場合は、異なる動作を観察できます。
static class Test
{
public static string logged_in;
}
Test.logged_in = "true";
var t = Test.logged_in;
Console.WriteLine(l); // prints "true"
Test.logged_in = "false";
var f = Test.logged_in;
Console.WriteLine(f); // prints "false"
Console.WriteLine(t); // prints "false"