gpt4 book ai didi

c# - 通过反射设置 Nullable 值类型属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:53 35 4
gpt4 key购买 nike

我正在尝试映射不同对象之间的属性值(通过反射)。这似乎在可空值类型上奇怪地失败了。以下代码:

 destProperty.SetValue(destObject, sourceProperty.GetValue(sourceObject, null), null);

如果 destProperty 是可为 null 的值类型,则将 destProperty 设置为 null,尽管 sourceProperty 具有值。

这当然是一项相当常见的任务 - 我一定是遗漏了一些简单的东西?

最佳答案

您发布的内容对我有用。刚刚运行了以下。 destObject.b 之后等于 110。请注意,最后的代码行是您发布的逐字记录。

class Foo {

public int? a { get; set; }
public int? b { get; set; }

static void Main(string[] args) {

var destObject = new Foo { a = 1, b = 2 };
var sourceObject = new Foo { a = 110, b = 112 };
var destProperty = typeof(Foo).GetProperty("b");
var sourceProperty = typeof(Foo).GetProperty("a");

destProperty.SetValue(destObject, sourceProperty.GetValue(sourceObject, null), null);
}
}

关于c# - 通过反射设置 Nullable 值类型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2385544/

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