繁体   English   中英

获取变量的类级别实例(不是接口)

[英]Get Class level instance of a variable (not Interface)

如果我有以下情况

public interface IFace
{
     int NoseSize {get; set;}
}


public class Face: IFace
{
    private int NoseSize;

    public int IFace.NoseSize
    {
        get { return ClassLevel.NoseSize}
        set { ClassLevel.NoseSize = value}
    }
}

我如何真正表示“ ClassLevel”?

只需将其称为NoseSizethis.NoseSize如果您愿意)。


顺便说一句,您没有正确实现该接口。 如果要使用显式接口实现,则不能指定访问修饰符。

如果要隐式实现接口,则应省略接口名称,而只拥有一个与接口成员名称和签名匹配的公共成员。 当然,如果这样做,则在同一类中不能有名称相同的字段。

您可以通过重命名来减轻名称冲突:

private int NoseSize;

至:

private int noseSize;

我确定它会因地区,公司等而异,但我相信通常将骆驼箱用于私人会员。

将接口视为合同。 您正在说的是,必须保证从接口(IFace)派生的任何内容都具有这些成员和/或方法。 实际实现它们取决于派生类。 它为您做的另一件事是为从接口派生的类提供“ IsA”关系。

或者,您可以这样做。

public class Face: IFace
{
    public int NoseSize
    {
        get;
        set;
    }

    public void foo()
    {
        this.NoseSize = 42;
        int someSize = this.NoseSize;
    }
}

您应该使用InterfaceName.Member表示法来引用使用显式接口实现实现的成员。因此,如果省略IInterfaceName。 部分意味着您要引用的是未明确实现的成员(您称之为类的成员)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM