Che*_*hev 12 .net c# inheritance interface
好的,我有两个名称空间.一个包含我的界面,一个包含实现类.像这样:
namespace Project.DataAccess.Interfaces
{
public interface IAccount
{
string SomeMethod();
}
}
namespace Project.DataAccess.Concrete
{
class Account : Project.DataAccess.Interfaces.IAccount
{
string SomeMethod()
{
return "Test";
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码我收到一个错误:
'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";
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么要修复它?如果我不这样做,为什么必须公开呢?
我很清楚将其公之于众.使方法签名看起来像这样没有公开修改它:
string IAccount.SomeMethod()
Run Code Online (Sandbox Code Playgroud)
为什么?
Chr*_*Wue 24
接口实现需要公开或明确:
上市:
class Account : IAccount
{
public string SomeMethod()
{
return "Test";
}
}
Run Code Online (Sandbox Code Playgroud)
明确:
class Account : IAccount
{
string IAccount.SomeMethod()
{
return "Test";
}
}
Run Code Online (Sandbox Code Playgroud)
private如果您未指定访问修饰符,则C#中的默认访问修饰符.