【发布时间】:2023-03-13 19:11:01
【问题描述】:
我有一个内部接口。通常我使用公共接口,但这次我将很多东西保留在内部。
现在的问题是,当我在一个实现内部接口的公共类中,该接口还包含一个内部成员时,为什么我不能在不强制转换的情况下访问接口成员(显式实现)?我在“所有者”类里面,实现接口的类,完全在里面,我应该有所有的权利吧?
我不介意我只在代码中使用一次该转换,但事实并非如此。我在代码中有 10 次这样的星座。有点烦。
我错过了什么吗?就像我说的,我不能正常使用内部接口。
在您开始投票或发布此问题如何重复之前,只需发表评论,我将删除它。
代码如下:
internal class Poco
{
public string Str
{
get;
set;
}
}
internal interface ITest1
{
Poco Obj
{
get;
set;
}
}
public class Foo : ITest1
{
// Not working
Poco Obj
{
get;
set;
}
}
【问题讨论】:
-
请注意,声明接口的约定意味着您应该将其命名为
IKey,或者甚至可能是IKeyable。 -
@EvanTrimboli 谢谢,我会记住这一点的。
-
对 Foo 中的 Obj 的访问修饰符丢失。默认是私有的
-
这里没有访问修饰符。试试看。
-
为了隐式实现接口方法/属性必须是公共非静态Interfaces (C# Programming Guide)
标签: c#