C# 使用模板和创建冲突来创建Person对象

C# 使用模板和创建冲突来创建Person对象,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我有一个人模型 public class Person { public int Id { get; set; } public string Name { get; set; } public string Gender { get; set; } public string Age { get; set; } } 我有一个个人模板模型 public class PersonTemplate { public string Name { get; set

我有一个人模型

public class Person
{
   public int Id { get; set; }

   public string Name { get; set; }
 
   public string Gender { get; set; }

   public string Age { get; set; }
}
我有一个个人模板模型

public class PersonTemplate
{
   public string Name { get; set; }
 
   public string Gender { get; set; }

   public int Age { get; set; }
}
假设我有两个具有以下值的PersonTemplate:

var personTemplateOne = new PersonTemplate {
 Name = "",
 Gender = "Male",
 Age = 18
};

var personTemplateTwo = new PersonTemplate {
 Name = "",
 Gender = "Female",
 Age = 16
}
我想使用我创建的两个PersonTemplate并将其应用于

var person = new Person();

这两个模板具有“性别”和“年龄”属性的值。我想输出两个模板之间存在冲突,并让用户选择在每个字段上使用哪个模板。最好的方法是什么?

您好,最好的方法是反射方法。 但您也可以创建一个函数,将两个对象作为参数进行比较,并将其属性与冲突列表的输出进行比较

功能列表比较(PersonTemplate p1、PersonTemplate p2) { 使用foreach获取属性,然后从p1和p2获取值

如果是相同的没有问题,如果不是在列表中添加冲突

}

但我找到了一个现成的解决方案,可以帮助您进行反思:

你也必须改变你自己 类人员=>类人员:PersonTemplate
类person现在将只具有id属性。所以现在您可以亲自插入PersonTemplate类了

我不确定您到底在问什么,但听起来您确实想使用继承。也许

public class Person : PersonTemplate 

另外,您将Age声明为字符串,并向其传递一个int值。

如果出现任何问题,我将尝试您的建议并返回。