FieldInfo.IsStatic Właściwość

Definicja

Pobiera wartość wskazującą, czy pole jest statyczne.

C#
public bool IsStatic { get; }

Wartość właściwości

true jeśli to pole jest statyczne; w przeciwnym razie , false.

Implementuje

Przykłady

Poniższy przykład określa, czy określone pole jest statyczne i wyświetla wynik.

C#
using System;
using System.Reflection;

 // Make two fields.
public class Myfielda
{
    private string field = "A private field";
    public string Field
    {
        get{return field;}
        set{if(field!=value){field=value;}}
    }
}
public class Myfieldb
{
    static string field = "B private static field";
    public string Field
    {
        get{return field;}
        set{if(field!=value){field=value;}}
    }
}

public class Myfieldinfo
{
    public static int Main()
    {
        Console.WriteLine("\nReflection.FieldInfo");
        Myfielda Myfielda = new Myfielda();
        Myfieldb Myfieldb = new Myfieldb();

        // Get the Type and FieldInfo.
        Type MyTypea = typeof(Myfielda);
        FieldInfo Myfieldinfoa = MyTypea.GetField("field", BindingFlags.NonPublic|BindingFlags.Instance);
        Type MyTypeb = typeof(Myfieldb);
        FieldInfo Myfieldinfob = MyTypeb.GetField("field", BindingFlags.NonPublic|BindingFlags.Static);

        // For the first field, get and display the name, field, and IsStatic property value.
        Console.Write("\n{0} - ", MyTypea.FullName);
        Console.Write("{0}; ", Myfieldinfoa.GetValue(Myfielda));
        Console.Write("IsStatic - {0}", Myfieldinfoa.IsStatic);

        // For the second field get and display the name, field, and IsStatic property value.
        Console.Write("\n{0} - ", MyTypeb.FullName);
        Console.Write("{0}; ", Myfieldinfob.GetValue(Myfieldb));
        Console.Write("IsStatic - {0}", Myfieldinfob.IsStatic);

        return 0;
    }
}

Ten kod spowoduje wygenerowanie następujących danych wyjściowych:

Console
Reflection.FieldInfo

Myfielda - A private field; IsStatic - False

Myfieldb - B static field; IsStatic - True

Uwagi

Gdy pole jest statyczne, jedna kopia pola jest współużytkowana przez wszystkie wystąpienia typu.

Właściwość IsStatic jest ustawiana po ustawieniu atrybutu FieldAttributes.Static .

Aby uzyskać właściwość, najpierw pobierz klasę IsStaticType. W pliku Typepobierz element FieldInfo. Z obiektu FieldInfopobierz IsStatic właściwość . Aby uzyskać dostęp do pola innego niż publiczny, ustaw BindingFlagsNonPublic wartość na wartość w metodzie GetField i ustaw wartość ułatwień dostępu na Instance lub Static.

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Zobacz też