MethodBase.IsSpecialName Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets a value indicating whether this method has a special name.

Namespace:   System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public bool IsSpecialName { get; }

Property Value

Type: System.Boolean

true if this method has a special name; otherwise, false.

The SpecialName bit is set to flag members that are treated in a special way by some compilers (such as property accessors and operator overloading methods).

This example shows a use of IsSpecialName to filter internal or private members out of a list.

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)
        MethodInfo[] mInfo = aType.GetMethods();
        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)

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top