0

我创建了一个类,将其视为某些功能的基类。现在我想扩展那个类的工作。但这里有一些我不想被用户展示的属性。所以问题是如何隐藏一些依赖属性。

我知道BrowsableAttribute但我不能在我的基类中使用它,因为它正在被其他类使用。所以我只想在新的扩展类中隐藏一些属性。

 public class BaseControl : Control
    {
        static BaseControl()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(BaseControl), new FrameworkPropertyMetadata(typeof(BaseControl)));
        }



        public int BaseProperty
        {
            get { return (int)GetValue(BasePropertyProperty); }
            set { SetValue(BasePropertyProperty, value); }
        }

        // Using a DependencyProperty as the backing store for BaseProperty.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty BasePropertyProperty =
            DependencyProperty.Register("BaseProperty", typeof(int), typeof(BaseControl), new UIPropertyMetadata(100));


    }

    public class Child1Control : BaseControl
    {
      // Using BaseProperty for internal Uses. 
    }

    public class Child2Control : BaseControl
    { 
        //TODO: How To HIDE the BasePropery here so that
    }
4

2 回答 2

0

如果您不想被这些属性覆盖,只需将它们注册为ReadOnly

于 2013-03-18T15:23:44.203 回答
0

如果基类具有不应被子类访问且不应被分类代码访问的属性,请将属性设为私有:

public MyBaseClass
{
    private string MyProperty { get; set; }


}

或者使用私有变量而不是属性:

public MyBaseClass
{
    private string _myProperty;


}
于 2013-03-18T15:13:00.143 回答