2011-01-25 7 views
0
class ClassA 
{ 

} 

class ClassB : ClassA 
{ 
    // it has its set of properties 
} 

class ClassC : ClassA 
{ 

} 


ClassB b = Factory.LoadB(); 

ClassC c = b as ClassA; // doesn't work 

bからの値を使用してインスタンスcを初期化することは可能ですか? ClassAのすべてのプロパティが設定されるように初期化しますか?私が割り当てようとしているのと同じ基本クラスが含まれている場合、このクラスをコピーするには?

答えて

3

これを行うための組み込み方法はありません。

プロパティを手作業で割り当てる関数を記述する必要があります。
Reflectionを使用してプロパティを割り当てる関数を記述することもできますが、それは不必要に遅くなります。

0

あなたのようなコンストラクタを書くことができます。

class ClassC: ClassA 
{ 
    public ClassC(ClassB initial_value) 
    { 
     // Copy data here 
    } 
} 

ClassC c = new ClassC(b); 
0

ClassCは非常に真ClassA

ClassB b = Factory.LoadB(); 

ClassA a = b as ClassA; // this is ok, because ClassB is type of ClassA 

ClassC c = a; // a is a ClassA, but is not a type of ClassC 
+0

@SLaksではありませんので、あなたはこれを行うことはできません、感謝を! –

関連する問題