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 にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET