我从ICART接口如何隐藏财产继承接口的类
继承两个类当我创建这个班我想仅来宾类告诉我IsInfoExist属性的对象。我该怎么做?
ICart cart = new Guest();
bool c = cart.IsInfoExist //it's ok
ICart cart = new Member();
cart.IsInfoExist not ok.
其实我不想永远不会出现在intellinsense但接口逼我展示会员IsInfoExist财产
class Guest:ICart
{
public bool IsInfoExist
{
get { return Session["guest_info"] != null; }
}
public void GetCart()
{
}
}
class Member:ICart
{
//Hide this on intellinsense always!
public bool IsInfoExist
{
get { return false; }
}
public void GetCart()
{
}
}
public interface ICart
{
void GetCart();
bool IsInfoExist { get; }
}
然后不要使'IsInfoExists'部分的接口 – Pikoh
如果你实现'ICart'接口,那么你有该接口上的成员。通过设计。总是。如果你不想要那些成员,那就不要实现那个接口。这听起来像你想要的是一个不同的界面。 – David
相关:http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle – David