我在 Visual Studio 2019 中有一个 .Net 6.0 应用程序。我正在尝试使默认接口实现正常工作。出于某种原因,它似乎没有识别类定义中的默认实现。
这是一个示例代码片段:
public interface IFooBar
{
protected bool BoolProperty { get; set; }
protected Guid StringProperty { get; set; }
protected void SampleMethod1(string param)
{
}
protected void SampleMethod2()
{
}
}
public class FooBase
{
}
public class Foo : FooBase, IFooBar
{
protected bool IFooBar.BoolProperty { get; set; }
protected Guid IFooBar.StringProperty { get; set; }
protected SomeMethod()
{
SampleMethod1("Test String");
}
}
这是我的 Visual Studio 2019 项目文件中的一个片段:
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<LangVersion>preview</LangVersion>
</PropertyGroup>
这是我看到的错误消息。
错误 CS0103 当前上下文中不存在名称“SampleMethod1”
我有两个问题/问题:
为什么编译器要求我在具体类中定义接口属性:protected bool IFooBar.BoolProperty { get; 放; } 受保护的 Guid IFooBar.StringProperty { get; 放; }
为什么在我的具体类中无法识别默认方法实现?