我是C#新手,正在尝试实现一个接口。我知道我不能在接口方法上放置访问修饰符,因此如何在下面的“ TestClass2”的公共静态“创建”方法中访问“ TestValue”?我得到的错误是...
'TestClass1'不包含'TestValue'的定义,并且找不到找到接受类型为'TestClass1'的第一个参数的扩展方法'TestValue'
public interface IParent
{
string TestValue { get; }
}
public class TestClass1 : IParent
{
string IParent.TestValue
{
get { return "hello"; }
}
}
public class TestClass2
{
private string _testValue;
public static TestClass2 Create(TestClass1 input)
{
TestClass2 output = new TestClass2();
output._testValue = input.TestValue;
return output;
}
}
最佳答案
在您的具体实现中添加public
访问修饰符:
public class TestClass1 : IParent
{
private TestClass1 _testValue;
public string TestValue
{
get { return "hello"; }
}
}
编辑:当您实际编写了一个显式接口实现时,我建议您看以下SO问题:C# Interfaces. Implicit implementation versus Explicit implementation