【发布时间】:2014-11-16 10:42:28
【问题描述】:
我正在使用辛普森规则计算特定函数的数学积分的 Windows 窗体中编写 C# 代码。
我的程序已经完成,但是我想让它更加动态,并在我的 form1.cs[design] 中添加一个额外的功能。我想使用继承和多态来扩展我的类以接受不同的集成功能。
这将是我表单中非常有用的功能,但我找不到任何相关内容。有谁知道如何将这个功能添加到我现有的计算器代码中?
这是我目前使用辛普森规则定义要集成的函数的方式。
public virtual double funct(double x)
{
return 2 / (1 + 4*(x * x));
}
当我从那里更改函数时,我的 form1.cs[design] 给了我正确的结果.......但是我希望能够从我的 form.cs 中选择不同的函数(任何用于集成的函数) [设计]
【问题讨论】:
-
如果您不显示任何相关代码,很难提供帮助...
-
非常感谢您的回复,请参阅重新编辑的问题。
-
很难说出你想要什么。 “我希望能够选择不同的功能”听起来像是一组(小)可供选择的功能。相应的 GUI 元素将是一个列表框。您可以使用下面建议的委托,它是一个花哨的函数指针,或者实际上是继承和多态,特别是如果您想在函数中附加更多特性和信息(IsMonotonic、ToString 等)。
-
@PeterSchneider 即使在需要向函数添加更多信息/功能的情况下,继承也不是,恕我直言,这个问题的解决方案。我会用围绕
Func<double, double>的包装类来解决这个问题,用所需的属性对其进行装饰。 -
@InBetween TMTOWTDI。只是经典的继承更灵活、更优雅地解决了问题,而在 OO 之前是用函数指针解决的(调用代码在编写调用者时是未知的)。
标签: c# inheritance polymorphism integration