【发布时间】:2011-09-15 00:15:15
【问题描述】:
好的,我有两个命名空间。一个包含我的接口,一个包含实现类。像这样:
namespace Project.DataAccess.Interfaces
{
public interface IAccount
{
string SomeMethod();
}
}
namespace Project.DataAccess.Concrete
{
class Account : Project.DataAccess.Interfaces.IAccount
{
string SomeMethod()
{
return "Test";
}
}
}
使用此代码我得到一个错误:
“Project.DataAccess.Concrete.Account”没有实现接口成员“Project.DataAccess.Interfaces.IAccount.SomeMethod”。 'Project.DataAccess.Concrete.Account.SomeMethod' 无法实现接口成员,因为它不是公共的
如果我将类和方法公开,它就可以正常工作。但是,如果我改为使用接口名称来限定方法名称,那也可以修复它。为什么?例如:
namespace Project.DataAccess.Concrete
{
class Account : Project.DataAccess.Interfaces.IAccount
{
string IAccount.SomeMethod()
{
return "Test";
}
}
}
为什么这会解决它?如果我不这样做,为什么它必须公开?
要明确
我很清楚将其公开可以修复它。在不公开任何内容的情况下使方法签名看起来像这样:
string IAccount.SomeMethod()
为什么?
【问题讨论】:
标签: c# .net inheritance interface