これを行う1つの方法は、インスタンスをonconstructionに渡すことParentClass
ですChildClass
。
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);
}
警告:これはおそらくクラスを整理するための最良の方法ではありませんが、質問に直接答えます。
編集:コメントで、複数の親クラスが使用したいと述べています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