【问题标题】:C# Replace base class summary comment without overriding variableC# 替换基类摘要注释而不覆盖变量
【发布时间】:2016-07-06 21:41:04
【问题描述】:

我正在尝试用新的注释替换基类变量注释,我该如何实现?

这是一个内置类的例子:

class BaseClass
{
    /// <summary>Built-in class variable 1.</summary>
    public float var1;
    ...
}

我想在派生类中添加var1&lt;para&gt;Adding comment to built-in variable.&lt;/para&gt; 的摘要,代码如下:

class DerivedClass : BaseClass
{
    /// <summary>Built-in class variable 1.</summary>
    /// <para>Adding comment to built-in variable.</para>
    public float var1;
    ...
}

还有一条消息说:

“DerivedClass”隐藏继承的成员“BaseClass.var1”。如果要隐藏,请使用 new 关键字。

似乎我未能替换派生类中的评论。

有没有办法做到这一点?任何帮助表示赞赏。

【问题讨论】:

  • 基础和派生中的TTL 是否提供相同的功能?或者他们在TTLClassTTTClass 之间的行为是否不同。
  • 是的,它们的功能是一样的,但是我想添加一些 cmets 使使用说明更加清晰。

标签: c# inheritance comments summary


【解决方案1】:

有两件事对你不利:

  1. 您不能“覆盖”派生类中的 cmets。 cmets 与定义关联成员的类相关联。将 cmets 更改为继承成员的唯一方法是覆盖它们。
  2. 字段不可覆盖。您可以从派生类访问它们,但由于它们只是数据并且没有实现,因此没有什么可以“覆盖”。

我希望添加一些 cmets 以使使用说明更清晰

您是指在类中使用还是消费者使用

一些选项:

  • 将 cmets 添加到类本身,以阐明该类(以及可能的其他字段)的预期用途。
  • 在使用它的方法中添加 cmets 说明 TTL 的不同用法?
  • 在基类中使用不同的字段?如果用法不同,最好不要重复使用基本属性以避免混淆。

【讨论】:

    【解决方案2】:

    我不知道如何覆盖基注释,但您的派生类可以有一个简单地获取和设置基属性的属性,然后您可以给它一个新注释。

    class BaseClass
    {
        /// <summary>Time To Live.</summary>
        public float TTL;
    
        ...
    }
    
    class DerivedClass : BaseClass
    {
        /// <summary>Time To Live.</summary>
        /// <para>Also stops ticking after living time is longer than TTL.</para>
        public float TTL
        {
            get { return base.TTL; }
            set { base.TTL = value; }
        }
    
        ...
    }
    

    【讨论】:

    • 有没有可能不使用property的方法?也许添加评论行之类的?
    猜你喜欢
    • 2022-06-16
    • 2020-12-19
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 2012-02-03
    • 1970-01-01
    相关资源
    最近更新 更多