如何在基本属性中不标记“部分”、“抽象”或“外部”等属性

本文关键字:属性 部分 抽象 外部 | 更新日期: 2023-09-27 18:27:38

我在远程服务器中有一个名为 HasChar 的属性,类型为 Bool 。我需要在我的派生类中重新定义它并进行一些修改。但是基本属性没有标记为Partialabstractextern。但我需要重新定义,我怎样才能实现?在派生类中,我需要访问派生类中基类的HasChar属性,如果值为 False ,那么我必须将BlogText设为String.Empty

注意:基类位于远程服务器中,我无法更改它或 启动更改。基类属性未标记为 Partialabstractextern。不要创建任何其他属性来实现此目的。请给出与覆盖或类似相关的解决方案。

我的基类

public class BlogBase
{
    private string _blogText = string.Empty;
    public string BlogText 
    { 
        get { return _blogText; }; 
        set 
        {
            _blogText = value;
            HasChar = _blogText.Length >0 ? true : false;
        } 
    }
    public bool HasChar { get; set; }
}

我的派生类:粗略代码

public class BlogChild : BlogBase
{
    private bool _hasChar = false;
    public bool HasChar 
    { 
        get { return _hasChar; }; 
        set 
        {
            _hasChar = value;
            if(!_hasChar)
                BlogText = string.Empty;
        } 
    }
}

如何在基本属性中不标记“部分”、“抽象”或“外部”等属性

使用 new 关键字隐藏原始属性。

public new bool HasChar
{
    private bool _hasChar;
    get { return _hasChar; }
    set
    {
         // do other stuff
         _hasChar = value;
    }
}