gpt4 book ai didi

c# - 使用给定的基类创建派生类

转载 作者:太空宇宙 更新时间:2023-11-03 11:02:07 31 4
gpt4 key购买 nike

如果我有这个:

public class bClass
{
int id {get; set;}
string name {get; set;}
}

public class dClass : bClass
{
int extraVal {get; set;}
}

我有一个 bClass 对象列表:

List<bClass> baseClassList = getBaseClassList();

将 baseClassList 转换为“extralVal”设置为指定值的 dClass 对象列表的最简单方法是什么?我希望有一个类似的解决方案:

public class dClass : bClass
{
public dClass(bClass b, int exVal)
{
base = b;
extraVal = exVal;
}
int extraVal {get; set;}
}

List<dClass> dClassList = bClassList.ConvertAll(x => new dClass(x, exVal));

它本质上只是插入基类,然后设置额外的属性值,但显然这不是正确的语法。执行此操作的正确方法是什么?

最佳答案

不确定具体情况,但投影可能有帮助?

bClassList.Select(i=>new dClass{ id=i.id, name=i.name, extraval=exVal});

或者你可以使用反射

public dClass(bClass c) 
{
// copy base class properties.
foreach (PropertyInfo prop in c.GetType().GetProperties())
{
PropertyInfo prop2 = c.GetType().GetProperty(prop.Name);
prop2.SetValue(this,prop.GetValue(c, null), null);
}
}

关于c# - 使用给定的基类创建派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17290580/

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