C#显式声明成员接口

时间:2010-10-22 18:19:42

标签: c# interface access-modifiers

如何声明显式接口的成员?.i.e:

    public interface IPerfil
    {
        int IDPerfil
        {
            get;
            set;
        }
        int IDMarca
        {
            get;
            set;
        }
        int IDRegional
        {
            get;
            set;
        }
        int IDFilial
        {
            get;
            set;
        }
}

然后

    public class ComentariosPerfil : BaseComentarios, IPerfil
    {
        public int IPerfil.IDFilial
        {
            get;
            set;
        }
[...]

我收到编译错误,说“public”修饰符不能应用于此项目。

问题是:

我希望这个属性是公开的。我无法在界面中编写修饰符,如:

   public int IDPerfil
        {
            get;
            set;
        }

那么,如何明确实现接口成员,并将公开?

2 个答案:

答案 0 :(得分:6)

对于显式实现的接口,您无法指定可见性。它取自界面定义中的可见性。

所以在你的情况下使用以下内容。该功能将公开,因为这是定义 IPerfil 界面的方式:

public class ComentariosPerfil : BaseComentarios, IPerfil 
{ 
    int IPerfil.IDFilial 
    { 
        get; 
        set; 
    }

答案 1 :(得分:0)

不,你不能。显式实现接口意味着您必须首先将其强制转换为接口类型以使用已定义的合同。默认情况下,接口的所有成员都是公共的,因此公共显式接口没有任何意义,因为您首先无法从实现类访问它。