เมธอด Type.GetDefaultMembers() ใน C# ค้นหาสมาชิก (Members) ของ Type ปัจจุบันที่มีแอตทริบิวต์ DefaultMemberAttribute ตั้งค่าไว้
ไวยากรณ์
public virtual System.Reflection.MemberInfo[] GetDefaultMembers();
ตัวอย่างที่ 1: Property ชื่อ subject
using System;
using System.Reflection;
[DefaultMemberAttribute("subject")]
public class Demo
{
public static void Main()
{
Type t = typeof(Demo);
MemberInfo[] member = t.GetDefaultMembers();
if (member.Length != 0)
{
for (int i = 0; i < member.Length; i++)
Console.WriteLine("{0}", member[i]);
}
else
{
Console.WriteLine("Default Member isn't there!");
}
}
public void Name(string str) { }
public string subject
{
get { return "Mathematics"; }
}
}
ผลลัพธ์
System.String subject
ตัวอย่างที่ 2: Property ชื่อ rank
using System;
using System.Reflection;
[DefaultMemberAttribute("rank")]
public class Demo
{
public static void Main()
{
Type t = typeof(Demo);
MemberInfo[] member = t.GetDefaultMembers();
if (member.Length != 0)
{
for (int i = 0; i < member.Length; i++)
Console.WriteLine("{0}", member[i]);
}
else
{
Console.WriteLine("Default Member isn't there!");
}
}
public void Name(string str) { }
public int rank
{
get { return 5; }
}
}
ผลลัพธ์
Int32 rank
การประยุกต์: ใช้ใน Reflection เพื่อหา Default Property/Indexer ของ Type (เช่น Item Property ใน Collection)