gpt4 book ai didi

c# - 抽象类和只读属性

转载 作者:太空狗 更新时间:2023-10-29 19:44:35 24 4
gpt4 key购买 nike

让我们上三节课;

Line
PoliLine
SuperPoliLine

对于所有这三个类 a Distance已定义。

但只针对 Line一个Distance可以设置。

是否有可能构建一个通用抽象 (MustInherit) 类 Segment ,有一个 Distance 作为(抽象 +?只读)成员?

VB.NET 的问题,但也欢迎使用 C# 回答。


商业背景

想象一辆公共(public)汽车。它有很多 Station小号,MainStation s 和 2 TerminalStation秒。所以 Line 在 2 个站之间,PoliLine 在 2 MainStation 之间s 和 SuperPoliLine在 2 个终端站之间。所有“线”都是“段”,但只能定义 2 个站之间的距离 A->B - 线

最佳答案

您不能同时覆盖和重新声明(以添加集合)——但您可以:

基类:

protected virtual int FooImpl { get; set; } // or abstract
public int Foo { get { return FooImpl; } }

派生类:

new public int Foo {
get { return FooImpl; }
set { FooImpl = value; }
}

// your implementation here...
protected override FooImpl { get { ... } set { ... } }

现在您还可以根据需要覆盖 FooImpl。

关于c# - 抽象类和只读属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com