在类外部填充类的私有成员

时间:2014-03-09 11:15:56

标签: c#

我有以下课程:

public class MyFragment
{
  /// members + methods
  void proc();
}
public class MyProc
{
    /// members + methods

}
public class MyClass
{
   private MyProc m_proc;
   private MyFragment m_frag;
   public MyClass(MyFragment fr)
   {
       m_proc = new MyProc();
       m_frag = new MyFrag();
       m_frag.proc();
   }
}

对于类void proc()的方法MyFragment,我不能更改签名,也不能返回类型。但是可以改变实施方式 我的目标是使用m_proc内生成的一些数据更新MyClass MyFragment::proc() 我想过:

MyFragment类中生成MyProc内的对象,在MyFragment::proc()中填充它 然后将其复制到MyClass.m_proc。 另一方面,我不喜欢复制的想法......如何更有效地完成复制

1 个答案:

答案 0 :(得分:0)

您可以编写另一个方法,接受MyProc作为参数,并从proc调用此方法:

public class MyFragment
{
    /// members + methods
    public void proc() 
    {
        // just pass dummy argument
        ProcEx(new MyProc());
    }

    public void ProcEx(MyProc myProc)
    {
       // fill myProc
    }
}

public class MyClass
{
   private MyProc m_proc;
   private MyFragment m_frag;
   public MyClass(MyFragment fr)
   {
       m_proc = new MyProc();
       m_frag = new MyFrag();
       m_frag.ProcEx(m_proc);
   }
}

P.S。 CPP风格的会员名称让我发疯。