英語で読む

次の方法で共有


MethodBase.IsSpecialName プロパティ

定義

特別な名前のメソッドかどうかを示す値を取得します。

C#
public bool IsSpecialName { get; }

プロパティ値

このメソッドに特別な名前が付けられている場合は true。それ以外の場合は false

実装

この例では、 を使用して IsSpecialName 、リストから内部メンバーまたはプライベート メンバーをフィルター処理します。

C#
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)");
        }
    }
}

注釈

ビットは SpecialName 、一部のコンパイラ (プロパティ アクセサーや演算子オーバーロード メソッドなど) によって特別な方法で処理されるメンバーにフラグを設定するように設定されます。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください