Esporta (0) Stampa
Espandi tutto

Proprietà FieldInfo.IsStatic

Aggiornamento: novembre 2007

Ottiene un valore che indica se il campo è statico.

Spazio dei nomi:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public bool IsStatic { get; }
/** @property */
public final boolean get_IsStatic()

public final function get IsStatic () : boolean

Valore proprietà

Tipo: System.Boolean

true se il campo è statico; in caso contrario,false.

Implementa

_FieldInfo.IsStatic

Quando un campo è statico, una copia del campo viene condivisa da tutte le istanze del tipo.

La proprietà IsStatic viene impostata quando si imposta l'attributo FieldAttributes.Static.

Per ottenere la proprietà IsStatic, ottenere innanzitutto l'oggetto Type della classe. Da Type, ottenere FieldInfo. Da FieldInfo, ottenere la proprietà IsStatic. Per accedere a un campo non pubblico, impostare BindingFlags su NonPublic nel metodo GetField e impostare l'accessibilità su Instance o Static.

Nell'esempio riportato di seguito viene determinato se il campo specificato è statico e vengono riportati i risultati.

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;
    }
}


import System.*;
import System.Reflection.*;

// Make two fields.
public class MyFielda
{
    private String field = "A private field";

    /** @property 
     */
    public String get_Field()
    {
        return field;
    } //get_Field

    /** @property 
     */
    public void set_Field(String value)
    {
        if (!(field.Equals(value))) {
            field = value;
        }
    } //set_Field
} //MyFielda

public class MyFieldb
{
    private static String field = "B static field";

    /** @property 
     */
    public String get_Field()
    {
        return field;
    } //get_Field

    /** @property 
     */
    public void set_Field(String value)
    {
        if (!(field.Equals(value))) {
            field = value;
        }
    } //set_Field
} //MyFieldb

public class MyFieldInfo
{
    public static void main(String[] args)
    {
        Console.WriteLine("\nReflection.FieldInfo");
        MyFielda myFielda = new MyFielda();
        MyFieldb myFieldb = new MyFieldb();

        // Get the Type and FieldInfo.
        Type myTypea = Type.GetType("MyFielda");
        FieldInfo myFieldInfoa = myTypea.GetField("field", 
            BindingFlags.NonPublic | BindingFlags.Instance);
        Type myTypeb = Type.GetType("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.get_FullName());
        Console.Write("{0}; ", myFieldInfoa.GetValue(myFielda));
        Console.Write("IsStatic - {0}", 
            System.Convert.ToString(myFieldInfoa.get_IsStatic()));

        // For the second field get and display the name, field, and 
        // IsStatic property value.
        Console.Write("\n{0} - ", myTypeb.get_FullName());
        Console.Write("{0}; ", myFieldInfob.GetValue(myFieldb));
        Console.Write("IsStatic - {0}", 
            System.Convert.ToString(myFieldInfob.get_IsStatic()));
    } //main
} //MyFieldInfo


//Make two fields.
public class Myfielda
{
   private var field : String = "A private field";
   public function get Field() : String {
       return field;
   }

   public function set Field(value : String) {
       if(field!=value)field=value;
   }
}
public class Myfieldb
{
   private static var field : String = "B static field";
   public static function get Field() : String  {
       return field;
   }
   public static function set Field(value : String) {
       if(field!=value) field=value;
   }
}

public class Myfieldinfo
{
   public static function Main() : void
   {
      Console.WriteLine("\nReflection.FieldInfo");
      var myfielda : Myfielda = new Myfielda();
      var myfieldb : Myfieldb = new Myfieldb();

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

      //For the first field, get and display the name, field, and IsStatic.
      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.
      Console.Write("\n{0} - ", MyTypeb.FullName);
      Console.Write("{0}; ", Myfieldinfob.GetValue(myfieldb));
      Console.Write("IsStatic - {0}", Myfieldinfob.IsStatic);
   }
}
Myfieldinfo.Main();


L'output del codice è il seguente:

Reflection.FieldInfo

Myfielda: campo privato A; IsStatic = False;

Myfieldb: campo B statico, IsStatic = True

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile per Smartphone, Windows Mobile per Pocket PC, Xbox 360

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supportato in: 3.5, 2.0, 1.0

XNA Framework

Supportato in: 2.0, 1.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft