Search code examples
c#static

c# print the class name from within a static function


Is it possible to print the class name from within a static function?

e.g ...

public class foo
{

    static void printName()
    {
        // Print the class name e.g. foo
    }

}

Solution

  • You have three options to get the type (and therefore the name) of YourClass that work in a static function:

    1. typeof(YourClass) - fast (0.043 microseconds)

    2. MethodBase.GetCurrentMethod().DeclaringType - slow (2.3 microseconds)

    3. new StackFrame().GetMethod().DeclaringType - slowest (17.2 microseconds)


    If using typeof(YourClass) is not desirable, then MethodBase.GetCurrentMethod().DeclaringType is definitely the best option.