public class A
{
public int i;
}public class B
{
public string s;
public A GetA
{
?????????????????
}}
public class C
{
B b=new B();
b.i=1;
b.s="str";A a=b.GetA();
}

解决方案 »

  1.   

    public class B: A
    {
       public string s;
       public A GetA
       {
          get
          {
              A a = new A();
              return a;
          }
       }
    }
      

  2.   


    我不要新new的A
    我要的是当前b中继承的i的值。新new的你如何知道i等于几?
      

  3.   

    现在的情况是这样的在当前代码中,我只能得到A的了类的对象,但现在有一个方法的参数,要求传一个A的实例,我的当前代码中并没有A,我也不知道A类中有多少个属性
      

  4.   


    如果我没理解错,你是想把B当成A当做参数传入某个函数。答案是:直接把B传入即可。
    B b=new B()
    .........
    yourFunc(b);//因为B是A的子类,可以直接传入
    另外,如果你要在子类得到父类public或者protected的东西(变量、属性等),可以通过base关键字
    例如
    public class B : A
    {
    public string s;
    public int Geti
    {
       return base.i;
    }实际上Geti是多余的,因为B会自动继承A所有public的东西,也就是说,虽然B没声明i,但是B中可以自由地使用i,因为i在A中被声明为public
    LZ的OO概念需要进一步加强
      

  5.   

    你直接传B的实例就可以了,B是A的子类,B类也是A类,一个A类的引用变量可以指向一个B类对象
      

  6.   

    如果我没理解错,你是想把B当成A当做参数传入某个函数。答案是:直接把B传入即可。 
    B b=new B() 
    ......... 
    yourFunc(b);//因为B是A的子类,可以直接传入 这是传了b但是报错啊