如果我有一个C#类
public class Foo
{
public int? a { get; set; }
public int? b { get; set; }
}
这个类的两个示例
var foo1 = new Foo() { a = 1 };
var foo2 = new Foo() { b = 1 };
如何从两个对象复制值,以创建包含foo1
和foo2
值的Foo
的新示例?
在Javascript中,这就像下面这样简单
var foo3 = Object.assign({}, foo1, foo2);
4条答案
按热度按时间20jt8wwn1#
你可以创建一个通过反射合并对象的方法。2但是要注意,这是很慢的,并且通常不能在C#中使用。
必须注意跳过“空”属性。在您的情况下,这些是值类型。在我的示例实现中,每个属性都被跳过,如果它是该类型的默认值(对于int,这是0):
用法:
qybjjes12#
没有直接的方法,但你可以用这种方法来满足你的要求.
iqjalb3h3#
Vivek的答案是正确的。因为Object.Assign是继承与组合讨论的一部分。这在javascript中并不那么简单,在javascript中你需要Object.Assign,但是在C#中你可以在你自己的类中组合一个类,只需示例化它并使它成为一个属性。你真的一直在做这件事。
Javascript有它的原型继承,你实际上只是链接对象,所以继承(经典的)在那里不存在。
看看这段视频,很有启发性:Inheritance vs Composition
xhv8bpkk4#
问候你,奥利