Tickers.All();
class Tickers : Eloquent
{
}
class Eloquent
{
public static void All()
{
Console.WriteLine("Класс из которого вызывали меня");
}
}
Хочу в классе Eloquent получить название класса Tickers.
Подскажите пожалуйста)
Статические методы привязаны к определенному типу и не наследуются. В вашем случае Tickers.All()
на самом деле скомпилится в Eloquent.All()
, поэтому в рантайме не будет даже упоминания о Tickers
.
Чтобы реализовать вашу задумку, нужно немного подшаманить:
Вариант 1
class Tickers : Eloquent
{
public static new void All() => Eloquent.All();
}
class Eloquent
{
public static void All()
{
var stacktrace = new StackTrace();
var prevframe = stacktrace.GetFrame(1);
var method = prevframe.GetMethod();
Console.WriteLine($"Вызывающий класс: {method.ReflectedType.Name}");
}
}
Либо, как прокомментировал @Grundy, посмотреть еще один способ. Если коротко, то:
Вариант 2
class Tickers : Eloquent<Tickers>
{
}
class Eloquent<T> where T: Eloquent<T>
{
public static void All()
{
Console.WriteLine($"Вызывающий класс: {typeof(T).Name}");
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
По ответам из этого вопроса я понял как создавать jwt токенНо теперь встал вопрос, как его неявно обновлять
Есть класс Dispatcher с набором public методов, которые вызываются извнеКаждый из методов - задача(Func<Task>), запускаемая в очереди (в один момент...
Нужно из xml файла получать данные, по нажатию кнопки менять значение на 2 (+2)А вот как изменять данные из файла найти не могу нормально
Я создаю цикл от 0-100 и создаю определенные условияНапример, если число делится на 3 без остатка вывести строку, но у меня также есть условие,...