Type.FilterNameIgnoreCase 字段
定义
表示用于名称的不区分大小写的成员筛选器。Represents the case-insensitive member filter used on names. 此字段为只读。This field is read-only.
public: static initonly System::Reflection::MemberFilter ^ FilterNameIgnoreCase;
public static readonly System.Reflection.MemberFilter FilterNameIgnoreCase;
staticval mutable FilterNameIgnoreCase : System.Reflection.MemberFilter
Public Shared ReadOnly FilterNameIgnoreCase As MemberFilter
字段值
示例
下面的示例获取 MemberFilter 委托,将其作为参数传递给 FindMembers 方法,并显示以 String 字母 "c" 开头的类的方法及其属性,忽略大小写。The following example gets the MemberFilter delegate, passes it as a parameter to the FindMembers method, and displays the methods and their attributes of the String class that begin with the letter "c", disregarding the case.
using namespace System;
using namespace System::Collections;
using namespace System::Reflection;
using namespace System::Security;
int main()
{
try
{
MemberFilter^ myFilter = Type::FilterNameIgnoreCase;
Type^ myType = System::String::typeid;
array<MemberInfo^>^myMemberinfo1 = myType->FindMembers( static_cast<MemberTypes>(MemberTypes::Constructor | MemberTypes::Method), static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Static | BindingFlags::Instance), myFilter, "C*" );
IEnumerator^ myEnum = myMemberinfo1->GetEnumerator();
while ( myEnum->MoveNext() )
{
MemberInfo^ myMemberinfo2 = safe_cast<MemberInfo^>(myEnum->Current);
Console::Write( "\n {0}", myMemberinfo2->Name );
MemberTypes Mymembertypes = myMemberinfo2->MemberType;
Console::WriteLine( " is a {0}", Mymembertypes );
}
}
catch ( ArgumentNullException^ e )
{
Console::Write( "ArgumentNullException : {0}", e->Message );
}
catch ( SecurityException^ e )
{
Console::Write( "SecurityException : {0}", e->Message );
}
catch ( Exception^ e )
{
Console::Write( "Exception : {0}", e->Message );
}
}
using System;
using System.Reflection;
using System.Security;
public class MyFilterNameIgnoreCaseSample
{
public static void Main()
{
try
{
MemberFilter myFilter = Type.FilterNameIgnoreCase;
Type myType = typeof(System.String);
MemberInfo[] myMemberinfo1 = myType.FindMembers(MemberTypes.Constructor
|MemberTypes.Method, BindingFlags.Public | BindingFlags.Static |
BindingFlags.Instance, myFilter, "C*");
foreach (MemberInfo myMemberinfo2 in myMemberinfo1)
{
Console.Write("\n" + myMemberinfo2.Name);
MemberTypes Mymembertypes = myMemberinfo2.MemberType;
Console.WriteLine(" is a " + Mymembertypes.ToString());
}
}
catch(ArgumentNullException e)
{
Console.Write("ArgumentNullException : " + e.Message);
}
catch(SecurityException e)
{
Console.Write("SecurityException : " + e.Message);
}
catch(Exception e)
{
Console.Write("Exception : " + e.Message);
}
}
}
Imports System.Reflection
Imports System.Security
Public Class MyFilterNameIgnoreCaseSample
Public Shared Sub Main()
Try
Dim myFilter As MemberFilter = Type.FilterNameIgnoreCase
Dim myType As Type = GetType(System.String)
Dim myMemberinfo1 As MemberInfo() = myType.FindMembers(MemberTypes.Constructor Or MemberTypes.Method, BindingFlags.Public Or BindingFlags.Static Or BindingFlags.Instance, myFilter, "C*")
Dim myMemberinfo2 As MemberInfo
For Each myMemberinfo2 In myMemberinfo1
Console.Write((ControlChars.NewLine + myMemberinfo2.Name))
Dim Mymembertypes As MemberTypes = myMemberinfo2.MemberType
Console.WriteLine((" is a " + Mymembertypes.ToString()))
Next myMemberinfo2
Catch e As ArgumentNullException
Console.Write("ArgumentNullException : " + e.Message.Tostring())
Catch e As SecurityException
Console.Write("SecurityException : " + e.Message.Tostring())
Catch e As Exception
Console.Write("Exception : " + e.Message.Tostring())
End Try
End Sub
End Class
注解
此字段包含对方法使用的委托的引用 FindMembers 。This field holds a reference to the delegate used by the FindMembers method. 此委托封装的方法采用两个参数:第一个是 MemberInfo 对象,第二个参数是 Object 。The method encapsulated by this delegate takes two parameters: the first is a MemberInfo object and the second is an Object. 方法确定 MemberInfo 对象是否与指定的条件匹配 Object 。The method determines whether the MemberInfo object matches the criteria specified by the Object. 向 Object 分配一个字符串值,该字符串值可能包含尾随 "*" 通配符。The Object is assigned a string value, which may include a trailing "*" wildcard character. 仅支持通配符结束字符串匹配。Only wildcard end string matching is supported.
例如, Object 可以为分配值 "ByTe *"。For example, the Object may be assigned the value "ByTe*". 在这种情况下, FilterName 调用委托时,仅当对象表示的方法 MemberInfo 具有以 "byte" 开头的名称时,才返回 true,忽略大小写。In that case, when the FilterName delegate is invoked, it will return true only if the method represented by the MemberInfo object has a name that begins with "byte", ignoring case.