一种方法是将实例传递ParentClass
给ChildClass
on 构造
public ChildClass
{
private ParentClass parent;
public ChildClass(ParentClass parent)
{
this.parent = parent;
}
public void LoadData(DateTable dt)
{
// do something
parent.CurrentRow++; // or whatever.
parent.UpdateProgressBar(); // Call the method
}
}
确保this
在构造ChildClass
内部父项时传递对的引用:
if(loadData){
ChildClass childClass = new ChildClass(this); // here
childClass.LoadData(this.Datatable);
}
警告:这可能不是组织课程的最佳方式,但它直接回答了您的问题。
编辑:在您提到超过 1 个父类想要使用的评论中ChildClass
。这可以通过引入接口来实现,例如:
public interface IParentClass
{
void UpdateProgressBar();
int CurrentRow{get; set;}
}
现在,确保在两个(全部?)父类上实现该接口并将子类更改为:
public ChildClass
{
private IParentClass parent;
public ChildClass(IParentClass parent)
{
this.parent = parent;
}
public void LoadData(DateTable dt)
{
// do something
parent.CurrentRow++; // or whatever.
parent.UpdateProgressBar(); // Call the method
}
}
现在任何实现的东西都IParentClass
可以构造一个实例ChildClass
并传递this
给它的构造函数。