1

如何返回基类形式的数据?

A aclass = new A();
B bclass = aclass.GetB();

不起作用。

public class B
{
    protected string str1;
    protected string str2;
}

public class A:B
{
    public A()
    {
         base.str1 = "A";
         base.str2 = "B";
    }

    public B GetB()
    {
        return base;
    }
}
4

3 回答 3

11

GetB()完全没有必要。B bclass = aclass;已经足够aclassB

于 2013-01-23T15:14:14.747 回答
6

我不是 C# 专家,但return this;应该可以工作。不过,我真的不明白这样做的意义。

于 2013-01-23T15:08:32.843 回答
2

我强烈建议不要使用以下代码,而是更改类的行为,但答案如下:

public B GetB()
{
    return this as B;
}

而是编写一个独特的方法来返回转换为基类的对象,您可以使用以下内容;

public class B
{
    protected string str1;
    protected string str2;
}

public class A : B
{
    public A()
    {
        str1 = "A";
        str2 = "B";
    }
}

你可以使用如下;

A a = new A();
B b = a;
于 2013-01-23T15:10:10.477 回答