gpt4 book ai didi

C# 将 B 类的对象分配给 A 类

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

我有两个类(class)。

A 类:

public class A {
prop string p1 { get; set; }
prop string p2 { get; set; }
prop string p3 { get; set; }
}

B 类:

public class B {
prop string p1 { get; set; }
prop string p3 { get; set; }
}

现在假设我们有一个来自 B 类的对象,我们想将它分配给来自 A 类的对象。

B b_obj = new B(){
p1 = "something",
p2 = "something else"
}

A a_obj = new A(){
p1 = b_obj.p1,
p3 = b_obj.p3,
}

我认为上述解决方案不是最佳方式。

b_obj 分配给 A 类中的另一个对象的最佳做法是什么?

Tip : All property in class B has a similar property in class A

最佳答案

您始终可以实现隐式或显式转换运算符:

public class B
{
public static explicit operator A(B b)
{
return new A() {
p1 = b_obj.p1,
p3 = b_obj.p3,
}
}

//...
}

现在,只要您需要 BA,您就可以简单地编写:

var a = (A)b;

如果您无权访问AB,那么您可以实现一个扩展方法:

public static A ToA(this B b)
{
return ...
}

而且用法类似:

var a = b.ToA();

关于C# 将 B 类的对象分配给 A 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42622615/

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