我有一个类,有一些public是给别人调用的,但这个类内部包含另一个类的对象,我想让内部的这个对象可以随便访问第一个类该怎么做啊?
比如
class A
{
     private int abc;
     private string def;     private B m_b;     public A()
     {
         m_b = new B(this);
     }     
     public void DoSomething();  //这个是给外面用的。
}class B
{
   private A m_a;
    public B(A a)
    {
        m_a = a;
    }   public AnyFunction()
   {
        //我想要在这里能通过m_a 访问类A的所有成员变量,成员变量,要怎么做啊,但我又不能把A当中所有的成员都设成公友的,因为我只想让B(或者类似B这样的某个C类)这个类能够访问他所有的东西
   }
}
这个功能在C++里只要把B设成A的友元类就可以了,可是C#里没有这个东西啊,那该怎么达到这个功能啊?我是C#新手,请大家指点一下啊。

解决方案 »

  1.   

    完全没有必要用什么友元,直接在A中定义一个public函数再在AnyFunction()中调用这个函数就行了。如果想要直接操作成员变量也可以使用propertyC++中的friend主要是实现运算符重载而使用的,用的太多那肯定是程序的结构有问题。
      

  2.   

    完全没有必要用什么友元,直接在A中定义一个public函数再在AnyFunction()中调用这个函数就行了。如果想要直接操作成员变量也可以使用propertyC++中的friend主要是实现运算符重载而使用的,用的太多那肯定是程序的结构有问题。
    ==================================================================================在A中定义一个PUBLIC函数当然可以使B能够调用,但是这样的话,别的类也可以看到这个PUBLIC的函数了,可是我只是想让B能够使用的  
      

  3.   

    http://msdn2.microsoft.com/zh-cn/library/0tke9fxk.aspx