gpt4 book ai didi

c# - c#中的继承。复制基础对象中的属性

转载 作者:行者123 更新时间:2023-11-30 14:39:19 24 4
gpt4 key购买 nike

我有一个具有许多属性的对象 (A)。我创建了一个新对象 B,它使用一些新属性扩展了对象 A。

然后我有一个方法 AA 返回对象 A 的实例,但在我当前的方法 BB 中我使用对象 B 的新实例。

我有什么方法可以使用方法 AA 的返回值在对象 B 中赋值吗?如何赋值给 B,避免逐个属性地复制属性?

class A
{
string a1 {get; set;}
// ...
string a50 {get; set;}
}

class B: A
{
string bState {get; set;}
string bMessage {get; set;}
}

class ObjAA
{
public static AA ReturnAA()
{
AA oAA = new AA();
//...
return oAA;
}
}

class ObjBB
{
public void UseBB()
{
BB oBB = new BB();

var aa = ObjAA.ReturnAA();

// How do I assign to B avoiding property by property?
}
}

谢谢

最佳答案

马克·格拉维尔 mentions一种方式,这很好。

另一种方法是让方法为您返回 B 的实例。如何?使用泛型。

class ObjAA {
public static T ReturnA<T>() where T : A, new() {
T oAA = new T();
// fill the properties of A
return oAA;
}
}

然后:

class ObjBB
{
public void UseBB()
{
var bb = ObjAA.ReturnA<B>();
// bb is a B, and the properties it inherits from A are filled
}
}

关于c# - c#中的继承。复制基础对象中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6637224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com