现有班级中的自定义类

时间:2019-06-26 15:36:52

标签: c#

我想知道是否可以通过这种方式从现有类中创建自定义类:

原始课程:

public class Person
{
string name;
}

稍后的代码:

var diffPerson = CreateDiffClass<Person>();
diffPerson.name.Value = "name";
diffPerson.name.Changed = false;

此diffPerson不是Person类型的,而是自定义创建的,即Person中的每个变量本身都有一个,因此新变量是一个元组,其中T是变量的类型。

我希望它创建一个用于比较同一类的2个实例的系统。一个旧实例和一个新实例,并保存新值以及更改后的值

除了在本示例中显示之外,我真的不知道如何描述它,所以我希望它是可以理解的。

我希望这是通用的并且可以在任何给定的类上工作

谢谢

1 个答案:

答案 0 :(得分:0)

您可以这样声明一个通用类

public class CustomValue<T>
{
    public T Value { get; set; }

    public bool Changed { get; set; }
}

然后像这样使用它

public class Person
{
    public CustomValue<string> Name;
}

随后的代码

var diffPerson = new Person();

diffPerson.Name = new CustomValue<string>();
diffPerson.Name.Value = "name";
diffPerson.Name.Changed = false;