FieldInfo 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
探索欄位的屬性並提供欄位中繼資料的存取。
public ref class FieldInfo abstract : System::Reflection::MemberInfo
public ref class FieldInfo abstract : System::Reflection::MemberInfo, System::Runtime::InteropServices::_FieldInfo
public abstract class FieldInfo : System.Reflection.MemberInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class FieldInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._FieldInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class FieldInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._FieldInfo
type FieldInfo = class
inherit MemberInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type FieldInfo = class
inherit MemberInfo
interface _FieldInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FieldInfo = class
inherit MemberInfo
interface _FieldInfo
Public MustInherit Class FieldInfo
Inherits MemberInfo
Public MustInherit Class FieldInfo
Inherits MemberInfo
Implements _FieldInfo
- 繼承
- 衍生
- 屬性
- 實作
範例
下列範例會 Type.GetFields 使用 方法來從 FieldInfo 類別取得欄位相關信息,然後顯示欄位屬性。
using namespace System;
using namespace System::Reflection;
public ref class FieldInfoClass
{
public:
int myField1;
protected:
String^ myField2;
};
int main()
{
array<FieldInfo^>^myFieldInfo;
Type^ myType = FieldInfoClass::typeid;
// Get the type and fields of FieldInfoClass.
myFieldInfo = myType->GetFields( static_cast<BindingFlags>(BindingFlags::NonPublic | BindingFlags::Instance | BindingFlags::Public) );
Console::WriteLine( "\nThe fields of FieldInfoClass are \n" );
// Display the field information of FieldInfoClass.
for ( int i = 0; i < myFieldInfo->Length; i++ )
{
Console::WriteLine( "\nName : {0}", myFieldInfo[ i ]->Name );
Console::WriteLine( "Declaring Type : {0}", myFieldInfo[ i ]->DeclaringType );
Console::WriteLine( "IsPublic : {0}", myFieldInfo[ i ]->IsPublic );
Console::WriteLine( "MemberType : {0}", myFieldInfo[ i ]->MemberType );
Console::WriteLine( "FieldType : {0}", myFieldInfo[ i ]->FieldType );
Console::WriteLine( "IsFamily : {0}", myFieldInfo[ i ]->IsFamily );
}
}
using System;
using System.Reflection;
public class FieldInfoClass
{
public int myField1 = 0;
protected string myField2 = null;
public static void Main()
{
FieldInfo[] myFieldInfo;
Type myType = typeof(FieldInfoClass);
// Get the type and fields of FieldInfoClass.
myFieldInfo = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance
| BindingFlags.Public);
Console.WriteLine("\nThe fields of " +
"FieldInfoClass are \n");
// Display the field information of FieldInfoClass.
for(int i = 0; i < myFieldInfo.Length; i++)
{
Console.WriteLine("\nName : {0}", myFieldInfo[i].Name);
Console.WriteLine("Declaring Type : {0}", myFieldInfo[i].DeclaringType);
Console.WriteLine("IsPublic : {0}", myFieldInfo[i].IsPublic);
Console.WriteLine("MemberType : {0}", myFieldInfo[i].MemberType);
Console.WriteLine("FieldType : {0}", myFieldInfo[i].FieldType);
Console.WriteLine("IsFamily : {0}", myFieldInfo[i].IsFamily);
}
}
}
Imports System.Reflection
Public Class FieldInfoClass
Public myField1 As Integer = 0
Protected myField2 As String = Nothing
Public Shared Sub Main()
Dim myFieldInfo() As FieldInfo
Dim myType As Type = GetType(FieldInfoClass)
' Get the type and fields of FieldInfoClass.
myFieldInfo = myType.GetFields(BindingFlags.NonPublic Or _
BindingFlags.Instance Or BindingFlags.Public)
Console.WriteLine(ControlChars.NewLine & "The fields of " & _
"FieldInfoClass class are " & ControlChars.NewLine)
' Display the field information of FieldInfoClass.
Dim i As Integer
For i = 0 To myFieldInfo.Length - 1
Console.WriteLine(ControlChars.NewLine + "Name : {0}", myFieldInfo(i).Name)
Console.WriteLine("Declaring Type : {0}", myFieldInfo(i).DeclaringType)
Console.WriteLine("IsPublic : {0}", myFieldInfo(i).IsPublic)
Console.WriteLine("MemberType : {0}", myFieldInfo(i).MemberType)
Console.WriteLine("FieldType : {0}", myFieldInfo(i).FieldType)
Console.WriteLine("IsFamily : {0}", myFieldInfo(i).IsFamily)
Next i
End Sub
End Class
備註
欄位資訊是從元數據取得。 類別 FieldInfo 沒有公用建構函式。
FieldInfo 對像是藉由呼叫 GetFields 物件的 或 GetField 方法來 Type
取得。
欄位是在類別中定義的變數。 FieldInfo 可讓您存取類別內欄位的元數據,並提供欄位的動態集和取得功能。 在物件上呼叫叫用或 get 之前,類別不會載入記憶體中。
給實施者的注意事項
當您繼承自 FieldInfo 時,您必須覆寫下列成員:GetValue(Object) 和 SetValue(Object, Object, BindingFlags, Binder, CultureInfo)。
建構函式
FieldInfo() |
初始化 |
屬性
Attributes |
取得與這個欄位相關的屬性 (Attribute)。 |
CustomAttributes |
取得包含此成員之自訂屬性的集合。 (繼承來源 MemberInfo) |
DeclaringType |
取得宣告這個成員的類別。 (繼承來源 MemberInfo) |
FieldHandle |
取得 |
FieldType |
取得這個欄位物件的型別。 |
IsAssembly |
取得值,指出 Assembly 是否描述此欄位的潛在可視性;亦即,最多只有相同組件 (Assembly) 中的其他型別可以看見該欄位,組件外部的衍生型別 (Derived Type) 則看不見它。 |
IsCollectible |
取得指出此 MemberInfo 物件是否為可回收 AssemblyLoadContext 中保存之組件一部分的值。 (繼承來源 MemberInfo) |
IsFamily |
取得值,指出 Family 是否描述此欄位的可視性;亦即,您只能在其類別和衍生類別內看見該欄位。 |
IsFamilyAndAssembly |
取得值,指出 FamANDAssem 是否描述此欄位的可視性;亦即,只有當該欄位位於相同的組件時,衍生類別才能存取它。 |
IsFamilyOrAssembly |
取得值,指出 FamORAssem 是否描述此欄位的潛在可視性;亦即,無論該欄位位於何處,衍生類別以及相同組件中的類別都可以呼叫它。 |
IsInitOnly |
取得值,指出欄位是否只能在建構函式主體中設定。 |
IsLiteral |
取得值,指出數值是否在編譯時間被寫入並且無法變更。 |
IsNotSerialized |
已淘汰.
取得值,指出這個欄位是否有 |
IsPinvokeImpl |
取得值,指出對應的 |
IsPrivate |
取得值,指出欄位是否為私用的。 |
IsPublic |
取得值,指出欄位是否為公用的。 |
IsSecurityCritical |
取得值,這個值表示目前欄位在目前信任層級上是否為安全性關鍵或安全性安全關鍵。 |
IsSecuritySafeCritical |
取得值,這個值表示目前欄位在目前信任層級上是否為安全性安全關鍵。 |
IsSecurityTransparent |
取得值,這個值表示目前欄位在目前信任層級上是否為透明。 |
IsSpecialName |
取得值,指出在 FieldAttributes 列舉值中是否設定對應的 |
IsStatic |
取得值,指出欄位是否為靜態的。 |
MemberType |
取得 MemberTypes 值,表示這個成員為欄位。 |
MemberType |
在衍生類別中覆寫時,取得 MemberTypes 值,指出成員類型︰方法、建構函式、事件等。 (繼承來源 MemberInfo) |
MetadataToken |
取得值,這個值可識別中繼資料項目。 (繼承來源 MemberInfo) |
Module |
取得用於定義型別的模組,該型別宣告以目前 MemberInfo 表示的成員。 (繼承來源 MemberInfo) |
Name |
取得目前成員的名稱。 (繼承來源 MemberInfo) |
ReflectedType |
取得類別物件,是用來取得這個 |
方法
運算子
Equality(FieldInfo, FieldInfo) |
表示兩個 FieldInfo 物件是否相等。 |
Inequality(FieldInfo, FieldInfo) |
表示兩個 FieldInfo 物件是否不相等。 |
明確介面實作
擴充方法
GetCustomAttribute(MemberInfo, Type) |
擷取指定型別的自訂屬性,此屬性套用至指定成員。 |
GetCustomAttribute(MemberInfo, Type, Boolean) |
擷取只訂型別的自訂屬性,此屬性套用至指定成員,並且可選擇性檢查該成員的祖系。 |
GetCustomAttribute<T>(MemberInfo) |
擷取指定型別的自訂屬性,此屬性套用至指定成員。 |
GetCustomAttribute<T>(MemberInfo, Boolean) |
擷取只訂型別的自訂屬性,此屬性套用至指定成員,並且可選擇性檢查該成員的祖系。 |
GetCustomAttributes(MemberInfo) |
擷取套用至指定成員的自訂屬性集合。 |
GetCustomAttributes(MemberInfo, Boolean) |
擷取自訂屬性集合,此集合套用至指定成員,並且可選擇性檢查該成員的祖系。 |
GetCustomAttributes(MemberInfo, Type) |
擷取指定型別的自訂屬性集合,此集合套用至指定成員。 |
GetCustomAttributes(MemberInfo, Type, Boolean) |
擷取指定型別的自訂屬性集合,此集合套用至指定成員,並且可選擇性檢查該成員的祖系。 |
GetCustomAttributes<T>(MemberInfo) |
擷取指定型別的自訂屬性集合,此集合套用至指定成員。 |
GetCustomAttributes<T>(MemberInfo, Boolean) |
擷取指定型別的自訂屬性集合,此集合套用至指定成員,並且可選擇性檢查該成員的祖系。 |
IsDefined(MemberInfo, Type) |
指出是否將所指定型別的自訂屬性套用至指定的成員。 |
IsDefined(MemberInfo, Type, Boolean) |
指出指定之型別的自訂屬性是否會套用至指定的成員,以及選擇性地套用到其上階。 |
GetMetadataToken(MemberInfo) |
取得指定成員的中繼資料語彙基元 (如果有)。 |
HasMetadataToken(MemberInfo) |
傳回值,指出所指定成員是否有可用的中繼資料語彙基元。 |
適用於
執行緒安全性
此型別具備執行緒安全。