我正在尝试制作一些动态更新Windows Forms元素的代码,以便将我的一些后端代码与表单集成,但在语法中遇到了一个小小的速度问题。
现在我的代码是:
public virtual class DynamicDisplay
{
private Control c;
public DynamicDisplay(ref Control display)
{
c = display;
}
//interprets the attribute visually and shows it in the control
public abstract void ShowVal(double valToDisplay);
}
public class ProgBarDynamicDisplay : DynamicDisplay
{
private double max;
public ProgBarDynamicDisplay(ProgressBar p, double nMax) : base(ref p)
{
max = nMax;
}
}
但是这给了我一个“不匹配的方法”错误。有没有人知道我应该通过引用超类来传递进度条的语法?
答案 0 :(得分:1)
ref
的构造函数中不需要DynamicDisplay
,因为您未在该函数中重新分配display
。只需删除ref
即可。还要删除ref
base(ref p)
答案 1 :(得分:1)
也许是这样的?
public abstract class DynamicDisplay
{
private Control c;
public DynamicDisplay(Control display)
{
c = display;
}
//interprets the attribute visually and shows it in the control
public abstract void ShowVal(double valToDisplay);
}
public class ProgBarDynamicDisplay : DynamicDisplay
{
private double max;
public ProgBarDynamicDisplay(ProgressBar p, double nMax)
: base( p)
{
max = nMax;
}
public override void ShowVal(double valToDisplay)
{
MessageBox.Show("Value : " + valToDisplay);
}
}
测试:
namespace TestProject3
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
ProgressBar p = new ProgressBar();
TestProject3.Class1.ProgBarDynamicDisplay pbdr = new TestProject3.Class1.ProgBarDynamicDisplay(p, 100);
pbdr.ShowVal(10);
}
}
}