我有一个接口和两个实现它的类.我收到编译错误,我不太清楚为什么.
interface IPerson
{
ICollection<string> NickNames{get;set;}
}
class ObservablePerson : IPerson
{
ObservableCollection<string> NickNames{get;set;}
}
class ListPerson : IPerson
{
List<string> NickNames{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我在理解为什么这不起作用时遇到了一些麻烦,因为List和ObservableCollection都实现了ICollection.
我在理解为什么这不起作用时遇到了一些麻烦,因为List和ObservableCollection都实现了ICollection.
是的,但界面声明ICollection<string>返回了一个.底层类型可以是a ObservableCollection<string>或a List<string>,但签名需要符合接口.安ObservableCollection<string>是一个ICollection<string>,但ICollection<string>不一定是ObservableCollection<string>.
此外,您的方法需要公开(它们目前是私有的).接口不处理私有或受保护的方法,它定义了公共接口.
| 归档时间: |
|
| 查看次数: |
1407 次 |
| 最近记录: |