gpt4 book ai didi

c# - 伪多重继承

转载 作者:太空狗 更新时间:2023-10-30 01:24:40 25 4
gpt4 key购买 nike

我有一系列对象,这些对象已使用 LINQ to SQL 映射到数据库中。这些表是高度规范化的。我要抽象我的问题。我在数据库中实现了五个中央实体。然后我有一系列其他对象,我想实现这五个实体中的一个或全部。

假设我正在实现一种体育场类(想想运动队)。这五个实体就是五大运动;棒球,篮球,足球,曲棍球,足球。我想为每个体育场显式实现一个类。

这是一个例子,洋基体育场举办过棒球、曲棍球和橄榄球比赛。我希望它实现这 3 个接口(interface)中的每一个。 StadiumBaseClass 是与我的数据库接口(interface)的抽象基类。 StadiumBaseClass 实现了所有 5 个主要的运动接口(interface)。我不想在所有可能的体育场中使用相同的代码来实现 IBaseball 接口(interface),我希望它在 StadiumBaseClass 中实现一次。

在这个例子中,我只想实现 3,这是最好的方法吗?有点单调,但又不完全是?

class YankeeStadium : IBaseball, IHockey, IFootball
{
StadiumBaseClass _Stadium {get; set;}

// IBaseball
public IBaseball.Whatever {get { return _Stadium.Baseball;} }

// IFootball
public IFootball.Whatever {get { return _Stadium.Hockey;} }

// IHockey
public IHockey.Whatever {get { return _Stadium.Hockey;} }
}

最佳答案

我认为您根本不应该使用继承。你应该有一个带有 name 属性的 Stadium 类,而不是 YankeeStadium 类。

同样,您应该拥有诸如 HasHockey 之类的属性,或者如果 Hockey 属性不适用,则只需返回 null。

关于c# - 伪多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8752063/

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