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 に答える