gpt4 book ai didi

c# - AutoMapper map Int

转载 作者:行者123 更新时间:2023-11-30 22:12:56 25 4
gpt4 key购买 nike

我正在尝试使用 AutoMapper,除了 int 属性外,它工作得很好,因为它只是用 0 替换了字段

代码:

public class Employee
{
public int E1 { get; set; }
public int E2 { get; set; }
}

Mapper.CreateMap<Employee, Employee>().ForAllMembers(opt => opt.Condition(srs => !srs.IsSourceValueNull));

Employee e1 = new Employee {E1 = 7};
Employee e2 = new Employee {E2 = 78};

Mapper.Map(e2, e1);

//Results //E1 = 0, E2 = 78.... Does it supposed to only map E2 and leave E1 as i did not initialized it ?

最佳答案

在 C# 中,整数value types/数值结构。每个值类型都有一个隐式默认构造函数来初始化该类型的默认值。 整数 的默认值为。因此,即使您没有在代码中显式初始化它们,默认构造函数也会将其设置为零。

根据这些信息,您员工的属性(property)值(value)是:

e1 {E1 = 7,E2 = 0

e2 {E1 = 0,E2 = 78

现在,当您将 e2 映射到 e1 时(这是故意这样做的吗?) e1 将变为:

e1 {E1 = 0,E2 = 78

所以你的代码工作得很好。因为值类型永远不会为 null,除非它们被装箱,所以您的条件将始终返回 true。

关于c# - AutoMapper map Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19462188/

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