#c#
Вопрос:
Предположим, что у вас есть следующий интерфейс:
public interface ITraceManagerlt;TManagergt; where TManager : class { string Name { get; } void DisplayName(); }
Конкретный класс, реализующий этот интерфейс, выглядит следующим образом:
public sealed class TraceManagerlt;TManagergt; : ITraceManagerlt;TManagergt; where TManager : class { public string Name =gt; $"Foo Bar - {nameof(TManager)}"; public void DisplayName() { Console.WriteLine($"{Name}"); } }
Я могу зарегистрировать эту зависимость с помощью конструктора следующим образом:
readonly ITraceManagerlt;LoginManagergt; _traceManager; public LoginManager(ITraceManagerlt;LoginManagergt; traceManager) { _traceManager = traceManager; }
при вызове _traceManager.DisplayName()
метода я ожидал Name
бы, что свойство сохранит значение nameof(LoginManager)
, так как это указанный тип. Однако вместо этого значение Name
свойства равно TManager
.
Что я делаю не так?
Комментарии:
1. Ты хочешь
typeof(TManager).Name
.nameof
возвращает имя универсального аргумента , т. е.TManager
не имя предоставленного типа.2. @JohnathanBarclay Спасибо тебе! Это сделало свое дело. Пожалуйста, не стесняйтесь добавлять свой комментарий в качестве ответа, и я отмечу его как принятый ответ.