Type.GetFields 메서드 ()
어셈블리: mscorlib(mscorlib.dll)
GetFields 메서드는 알파벳 순서 또는 선언 순서 등의 특정 순서로 필드를 반환하지 않습니다. 필드가 반환되는 순서는 달라질 수 있으므로 코드에서는 이 순서를 따르지 않아야 합니다.
다음 표에서는 Get 메서드를 형식에 리플렉션할 때 해당 메서드에서 반환되는 기본 클래스의 멤버를 보여 줍니다.
| 멤버 형식 | 정적 | 비정적 |
|---|---|---|
| 생성자 | 아니요 | 아니요 |
| 필드 | 아니요 | 예. 필드는 항상 이름 및 서명으로 숨겨집니다. |
| 이벤트 | 사용할 수 없음 | 공용 형식 시스템 규칙은 상속이 속성을 구현한 메서드의 상속과 같다는 것입니다. 리플렉션은 속성을 이름 및 서명으로 숨겨진 상태로 취급합니다. 다음의 참고 2를 참조하십시오. |
| 메서드 | 아니요 | 예. 가상 및 가상이 아닌 메서드는 모두 이름으로 숨겨지거나 이름 및 서명으로 숨겨질 수 있습니다. |
| 중첩 형식 | 아니요 | 아니요 |
| 속성 | 사용할 수 없음 | 공용 형식 시스템 규칙은 상속이 속성을 구현한 메서드의 상속과 같다는 것입니다. 리플렉션은 속성을 이름 및 서명으로 숨겨진 상태로 취급합니다. 다음의 참고 2를 참조하십시오. |
-
이름 및 서명으로 숨기면 사용자 지정 한정자, 반환 형식, 매개 변수 형식, 센티널, 관리되지 않는 호출 규칙 등을 포함한 서명의 모든 부분을 인식합니다. 이것은 이진 비교입니다.
-
리플렉션을 위해 속성과 이벤트는 이름 및 서명으로 숨겨집니다. 속성의 기본 클래스에 get 및 set 접근자가 모두 있지만 파생 클래스에는 get 접근자만 있는 경우, 파생 클래스 속성에서는 기본 클래스 속성이 숨겨지므로 기본 클래스의 설정자에 액세스할 수 없습니다.
-
사용자 지정 특성은 공용 형식 시스템의 일부가 아닙니다.
현재 Type이 생성된 제네릭 형식을 나타내는 경우 이 메서드는 FieldInfo 개체를 반환합니다. 여기에는 적절한 형식 인수로 대체된 형식 매개 변수가 포함됩니다.
현재 Type이 제네릭 형식 또는 제네릭 메서드 정의의 형식 매개 변수를 나타내는 경우 이 메서드는 클래스 제약 조건의 public 필드를 검색합니다.
다음 예제에서는 GetFields() 메서드를 사용하는 방법을 보여 줍니다.
using System; using System.Reflection; using System.ComponentModel.Design; class FieldInfo_IsSpecialName { public static void Main() { try { // Get the type handle of a specified class. Type myType = typeof(ViewTechnology); // Get the fields of the specified class. FieldInfo[] myField = myType.GetFields(); Console.WriteLine("\nDisplaying fields that have SpecialName attributes:\n"); for(int i = 0; i < myField.Length; i++) { // Determine whether or not each field is a special name. if(myField[i].IsSpecialName) { Console.WriteLine("The field {0} has a SpecialName attribute.", myField[i].Name); } } } catch(Exception e) { Console.WriteLine("Exception : {0} " , e.Message); } } }
import System.*;
import System.Reflection.*;
import System.ComponentModel.Design.*;
class FieldInfoIsSpecialName
{
public static void main(String[] args)
{
try {
// Get the type handle of a specified class.
Type myType = ViewTechnology.class.ToType();
// Get the fields of the specified class.
FieldInfo myField[] = myType.GetFields();
Console.WriteLine("\nDisplaying fields that have SpecialName"
+ " attributes:\n");
for (int i = 0; i < myField.length; i++) {
// Determine whether or not each field is a special name.
if (myField[i].get_IsSpecialName()) {
Console.WriteLine("The field {0} has a SpecialName"
+ " attribute.", myField[i].get_Name());
}
}
}
catch (System.Exception e) {
Console.WriteLine("Exception : {0} ", e.get_Message());
}
} //main
} //FieldInfoIsSpecialName
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.