如何在类中隐藏属性继承的接口

心理认知

我有两个类继承自 ICart 接口

当我从这个类创建一个对象时,我只希望 Guest 类向我显示 IsInfoExist 属性。我该怎么做?

ICart cart = new Guest();
bool c = cart.IsInfoExist //it's ok

ICart cart = new Member();
cart.IsInfoExist not ok. 

其实我不想永远不会出现在智能感知上,但界面强迫我显示 Member 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必须在 Guest 类中,请将其从界面中删除并保留在Guest类中。实现接口的类必须实现其中的所有方法,但它可以具有不属于该接口且特定于该类的其他方法。必须IsInfoExistsMember类中实现只是为了在之后隐藏它是无稽之谈所以,它会是这样的:

public interface ICart
{
     void GetCart();
}    

class Guest:ICart
{
    public bool IsInfoExist
    {
        get { return Session["guest_info"] != null; }
    }

    public void GetCart()
   {
   }
}

class Member:ICart
{ 
    public void GetCart()
    {
    }
}

编辑

对您来说,这种方法的问题似乎在于您总是使用类型变量,ICart这样您就无法访问该方法。但是你可以,你只需要把它转换成正确的类型,就像这样:

ICart cart = new Guest();
ICart cart2 = new Member();

if (cart is Guest)
{
   bool info=((Guest)cart).IsInfoExist;
}

if (cart is Member)
{
   bool info=((Member)cart).IsInfoExist; //this won't compile as IsInfoExist is not in the Member class
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

类中的接口继承

来自分类Dev

如何在基类中隐藏变量但在继承类中显示它们

来自分类Dev

从接口继承类的List <Interface>对象属性如何访问?

来自分类Dev

接口继承和属性隐藏的麻烦

来自分类Dev

如何忽略使用反射继承的类的所有隐藏属性?

来自分类Dev

在C#中,如何在不可继承的类中更改属性的DefaultValue属性?

来自分类Dev

如何在Grails中的继承类中通过地图构造函数设置属性?

来自分类Dev

如何在PHP的继承上下文中从基类中获取属性名称数组?

来自分类Dev

如何在PHP的继承上下文中从基类中获取属性名称数组?

来自分类Dev

如何使隐藏的边框侧继承CSS中的边框属性

来自分类Dev

如何在类中实现接口功能

来自分类Dev

如何在 TypeScript 中定义类的接口?

来自分类Dev

接口继承与类继承

来自分类Dev

如何在C ++中访问DirectWrite继承的接口?

来自分类Dev

如何在F#中隐藏和覆盖继承的方法?

来自分类Dev

如何在div中隐藏类

来自分类Dev

如何注册从 Unity 中的接口继承的接口

来自分类Dev

如何在继承的类中自动声明类实例变量

来自分类Dev

如何在XML中隐藏PropertyGid的属性?

来自分类Dev

如何在休眠中隐藏对象属性?

来自分类Dev

如何在类中创建类的属性?

来自分类Dev

如何在类中创建类的属性?

来自分类Dev

如何使用继承的类型覆盖接口属性

来自分类Dev

如何在接口类中创建超类对象?

来自分类Dev

如何在序列化期间隐藏类的属性?

来自分类Dev

继承:子类中超类的隐藏变量

来自分类Dev

如何获取实现接口但不继承接口的类

来自分类Dev

使用反射获取继承接口的类的属性

来自分类Dev

类从具有额外属性的接口继承导致错误

Related 相关文章

热门标签

归档