gpt4 book ai didi

c# - .NET:如何在具有相似成员(类型和名称)的不同类之间复制数据?

转载 作者:行者123 更新时间:2023-11-30 18:50:35 26 4
gpt4 key购买 nike

假设我们有 2 个类:

public class A
{
public int P1 {set; get;}
public int P2 {set; get;}
}

public class B
{
public int P1 {set; get;}
public int P2 {set; get;}

public int P3 {set; get;}
public int P4 {set; get;}
}

我可以通过某种方式转换它来初始化它们的同名成员吗?

我的意思是如果 .NET 有一些东西可以排除像这样的操作:

A.P1 = B.P1
A.P2 = B.P2

B.P1 = A.P1
B.P2 = A.P2

并忽略其他成员...

可以吗?

最佳答案

您可以将通用属性提取到接口(interface)。

public interface IMyInterface
{
int P1 {set; get;}
int P2 {set; get;}
}

public class A : IMyInterface
{
public int P1 {set; get;}
public int P2 {set; get;}
}

public class B : IMyInterface
{
public B(IMyInterface i)
{
P1 = i.P1;
P2 = i.P2;
}
public int P1 {set; get;}
public int P2 {set; get;}

public int P3 {set; get;}
public int P4 {set; get;}
}

然后你可以这样做:

A a = new A();
a.P1 = 1;
a.P2 = 2;

B b = new B(a);
Console.WriteLine(b.P1); //Outputs 1
Console.WriteLine(b.P2); //Outputs 2

编辑:也许你可以看看 https://github.com/AutoMapper/AutoMapper图书馆

关于c# - .NET:如何在具有相似成员(类型和名称)的不同类之间复制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096675/

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