new StackFrame().GetMethod().DeclaringType - самый медленный (17,2 микросекунды)
Если использование typeof(YourClass) нежелательно, то MethodBase.GetCurrentMethod().DeclaringType, безусловно, лучший вариант.
Ответ 3
В то время как ответы StackTrace верны, у них есть накладные расходы. Если вы просто хотите избежать изменения имени, рассмотрите typeof(foo).Name. Поскольку статические методы не могут быть виртуальными, обычно это нормально.
Ответ 4
A (чистая, IMO) альтернатива (все еще медленная, как черт возьми, и я бы съежился, если бы увидел это в базе производственного кода):
Кстати, если вы делаете это для ведения журнала, некоторые фреймворки регистрации (например, log4net) имеют встроенную возможность. И да, они предупреждают вас в документах, что это потенциальный кошмар производительности.