【发布时间】:2019-09-02 19:22:49
【问题描述】:
C# 8 支持接口中的默认方法实现。我的想法是将日志记录方法注入到这样的类中:
public interface ILoggable {
void Log(string message) => DoSomethingWith(message);
}
public class MyClass : ILoggable {
void MyMethod() {
Log("Using injected logging"); // COMPILER ERROR
}
}
我得到一个编译器错误:“该名称在当前上下文中不存在”
这样就不能使用默认方法实现了吗?
编辑:
有关 C# 规则的正确响应,请参阅accepted answer。有关更简洁的解决方案(我的问题的原始想法!),请参阅下面的own answer。
【问题讨论】:
标签: c# c#-8.0 default-interface-member