gpt4 book ai didi

c# - 转换派生类型和动态最佳实践

转载 作者:行者123 更新时间:2023-11-30 15:04:50 25 4
gpt4 key购买 nike

我正在使用 C# 4.0 开发一个项目。我有几个演示者类,它们都继承自同一个基类。这些演示者类中的每一个都有一个“当前”对象,它特定于每个演示者,但它们也都有一个公共(public)的继承类,当然与演示者分开。

在可怕的伪代码中:

class ApplicationPresenter inherits BasePresenter
Pubilc PersonApplication Current (inherited from Person)
class RecordPresenter inherits BasePresenter
Public PersonRecord Current (inherited from Person)
class InquiryPresenter inherits BasePresenter
Public PersonInquiry Current (inherited from Person)

...等等

有没有办法让我可以从其中任何一个中调用“当前”,而不需要类型检测,但要使其符合最佳实践?

我认为最好的选择是让它成为一个动态的,因为我知道我传递给它的任何东西都会有“当前”并以这种方式进行。这样合适吗?

或者有什么方法可以创建:

class BasePresenter
Public Person Current

并适本地进行转换?

我知道有办法解决这个问题,但我正在寻找干净和适当的一次。

谢谢!

最佳答案

将通用类型参数添加到基本表示器,以便任何派生的具体表示器都能够指定自定义当前项类型:

public abstract class PresenterBase<TItem>
{
public TItem Current { get; private set; }
}

// now Current will be of PersonApplication type
public sealed class ApplicationPresenter : PresenterBase<PersonApplication>
{
}

// now Current will be of PersonRecord type
public sealed class RecordPresenter : PresenterBase<PersonRecord>
{
}

关于c# - 转换派生类型和动态最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9703906/

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