[英]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”?
只需将其称为NoseSize
或this.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.