Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#替换基类摘要注释而不重写变量_C#_Inheritance_Comments_Summary - Fatal编程技术网

C#替换基类摘要注释而不重写变量

C#替换基类摘要注释而不重写变量,c#,inheritance,comments,summary,C#,Inheritance,Comments,Summary,我试图用一个新的注释替换基类变量comment,如何实现这一点 下面是一个内置类,例如: class BaseClass { /// <summary>Built-in class variable 1.</summary> public float var1; ... } 还有一条消息说: “DerivedClass”隐藏继承的成员“BaseClass.var1”。如果要隐藏,请使用新关键字 似乎我未能替换派生类中的注释 有没有办法做到这一点?

我试图用一个新的注释替换基类变量comment,如何实现这一点

下面是一个内置类,例如:

class BaseClass
{
    /// <summary>Built-in class variable 1.</summary>
    public float var1;
    ...
}
还有一条消息说:

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

似乎我未能替换派生类中的注释


有没有办法做到这一点?非常感谢您的帮助。

我不知道如何重写基注释,但是您的派生类可以有一个属性,该属性只获取和设置基属性,然后您可以给它一个新注释

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; }
    }

    ...
}
类基类
{
///是时候活了。
公共浮动TTL;
...
}
类派生类:基类
{
///是时候活了。
///在生存时间超过TTL后也停止滴答声。
公共浮动TTL
{
获取{return base.TTL;}
设置{base.TTL=value;}
}
...
}

有两件事对你不利:

  • 不能在派生类中“重写”注释。注释绑定到定义关联成员的类。将注释更改为继承成员的唯一方法是重写它们
  • 字段不可重写。您可以从派生类访问它们,但由于它们只是数据,没有实现,因此没有什么可“重写”的
  • 我希望添加一些注释,使用法描述更清楚

    您是指类内的使用情况还是消费者的使用情况

    一些选择:

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

    基础和派生中的
    TTL
    是否都具有相同的功能?或者它们在
    TTLClass
    TTTClass
    之间的行为是否有所不同。是的,它们具有相同的功能,但我希望添加一些注释以使用法描述更清楚。有没有可能不使用
    属性
    ?也许加上评论行什么的?
    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; }
        }
    
        ...
    }