gpt4 book ai didi

c# - UserControl依赖于业务逻辑类

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:48 25 4
gpt4 key购买 nike

我正在制作一个图表控件,它目前只是一个较大项目文件夹中的一个 UserControl,但我想知道是否/如何将它拉出来用作多个项目的控件。我想我必须把它放在它自己的项目中只包含控件? (我以前从未真正做过通用的用户控件,只在项目中有过)

本例中的问题是图表控件依赖于自定义类 TimeSeries,它是更大项目的业务逻辑的一部分。该类中的更新会触发用户控件监听的事件,以更新图表。这个 TimeSeries 类也会出现在使用该控件的其他项目中,但显然它不会是“相同”的类..

所以这意味着我不能简单地分离出这个用户控件。但这意味着什么,我这里有一些不好的结构性做法吗?您建议如何进行此操作?

最佳答案

当把 UserControl 放在它自己的项目中时,还要创建一个接口(interface):

interface ITimeSeries
{
// Stuff that the UserControl calls on the TimeSeries
}

然后在您的主项目中有自己的 TimeSeries:

class TimeSeries : ITimeSeries
{
// Implement the methods on the interface
}

然后您的 UserControl 应该在其构造函数中采用 ITimeSeries 或具有 ITimeSeries 类型的公共(public)字段/属性,可以由使用它的任何项目设置。这样,当它需要使用 TimeSeries 时,它并不关心它使用的是哪个实现。

关于c# - UserControl依赖于业务逻辑类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5462769/

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