MethodBase.IsSpecialName 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 메서드의 이름이 특수한지 여부를 나타내는 값을 가져옵니다.
public:
property bool IsSpecialName { bool get(); };
public bool IsSpecialName { get; }
member this.IsSpecialName : bool
Public ReadOnly Property IsSpecialName As Boolean
속성 값
이 메서드의 이름이 특수하면 true
이고, 그렇지 않으면 false
입니다.
구현
예제
이 예제에서는 를 사용하여 IsSpecialName 목록에서 내부 또는 프라이빗 멤버를 필터링하는 방법을 보여 주는 예제입니다.
using namespace System;
using namespace System::IO;
using namespace System::Reflection;
using namespace System::Text;
public ref class Sample
{
protected:
bool ShowMethods;
StreamWriter^ myWriter;
private:
void DumpMethods( Type^ aType )
{
if ( !ShowMethods )
return;
array<MethodInfo^>^mInfo = aType->GetMethods();
myWriter->WriteLine( "Methods" );
bool found = false;
if ( mInfo->Length != 0 )
{
for ( int i = 0; i < mInfo->Length; i++ )
{
// Only display methods declared in this type. Also
// filter out any methods with special names, because these
// cannot be generally called by the user. That is, their
// functionality is usually exposed in other ways, for example,
// property get/set methods are exposed as properties.
if ( mInfo[ i ]->DeclaringType == aType && !mInfo[ i ]->IsSpecialName )
{
found = true;
StringBuilder^ modifiers = gcnew StringBuilder;
if ( mInfo[ i ]->IsStatic )
{
modifiers->Append( "static " );
}
if ( mInfo[ i ]->IsPublic )
{
modifiers->Append( "public " );
}
if ( mInfo[ i ]->IsFamily )
{
modifiers->Append( "protected " );
}
if ( mInfo[ i ]->IsAssembly )
{
modifiers->Append( "internal " );
}
if ( mInfo[ i ]->IsPrivate )
{
modifiers->Append( "private " );
}
myWriter->WriteLine( "{0} {1}", modifiers, mInfo[ i ] );
}
}
}
if ( !found )
{
myWriter->WriteLine( "(none)" );
}
}
};
using System;
using System.IO;
using System.Reflection;
using System.Text;
public class Sample
{
protected bool ShowMethods;
protected StreamWriter myWriter;
private void DumpMethods(Type aType)
{
if (!ShowMethods)
return;
MethodInfo[] mInfo = aType.GetMethods();
myWriter.WriteLine("Methods");
bool found = false;
if (mInfo.Length != 0)
{
for (int i=0; i < mInfo.Length; i++)
{
// Only display methods declared in this type. Also
// filter out any methods with special names, because these
// cannot be generally called by the user. That is, their
// functionality is usually exposed in other ways, for example,
// property get/set methods are exposed as properties.
if (mInfo[i].DeclaringType == aType && !mInfo[i].IsSpecialName)
{
found = true;
StringBuilder modifiers = new StringBuilder();
if (mInfo[i].IsStatic) {modifiers.Append("static ");}
if (mInfo[i].IsPublic) {modifiers.Append("public ");}
if (mInfo[i].IsFamily) {modifiers.Append("protected ");}
if (mInfo[i].IsAssembly) {modifiers.Append("internal ");}
if (mInfo[i].IsPrivate) {modifiers.Append("private ");}
myWriter.WriteLine("{0} {1}", modifiers, mInfo[i]);
}
}
}
if (!found)
{
myWriter.WriteLine("(none)");
}
}
}
Imports System.IO
Imports System.Reflection
Imports System.Text
Public Class Sample
Protected ShowMethods As Boolean
Protected myWriter As StreamWriter
Private Sub DumpMethods(ByVal aType As Type)
If Not ShowMethods Then
Return
End If
Dim mInfo As MethodInfo() = aType.GetMethods()
myWriter.WriteLine("Methods")
Dim found As Boolean = False
If mInfo.Length <> 0 Then
Dim i As Integer
For i = 0 To mInfo.Length - 1
' Only display methods declared in this type. Also
' filter out any methods with special names, because these
' cannot be generally called by the user. That is, their
' functionality is usually exposed in other ways, for example,
' property get/set methods are exposed as properties.
If mInfo(i).DeclaringType Is aType _
And Not mInfo(i).IsSpecialName Then
found = True
Dim modifiers As New StringBuilder()
If mInfo(i).IsStatic Then
modifiers.Append("static ")
End If
If mInfo(i).IsPublic Then
modifiers.Append("public ")
End If
If mInfo(i).IsFamily Then
modifiers.Append("protected ")
End If
If mInfo(i).IsAssembly Then
modifiers.Append("internal ")
End If
If mInfo(i).IsPrivate Then
modifiers.Append("private ")
End If
myWriter.WriteLine("{0} {1}", modifiers, mInfo(i))
End If
Next i
End If
If Not found Then
myWriter.WriteLine("(none)")
End If
End Sub
End Class
설명
비트는 SpecialName 일부 컴파일러(예: 속성 접근자 및 연산자 오버로드 메서드)에서 특수하게 처리되는 멤버에 플래그를 지정하도록 설정됩니다.
적용 대상
추가 정보
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET