gpt4 book ai didi

c# - 从继承类更改基本对象属性的最佳实践是什么

转载 作者:行者123 更新时间:2023-11-30 15:49:06 25 4
gpt4 key购买 nike

我想将 student1 的“person”属性设置为 person1。这有可能通过分配或任何方式来完成而无需一一设置属性吗?

static void Main(string[] args)
{
var student1 = new Student {Id = 1, Name = "kaya", Class = "3b", Number = "156"};
var person1 = new Person { Id = 2, Name = "hasan" };

}


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

public class Student : Person
{
public int Number { get; set; }
public String Class { get; set; }
}

最佳答案

好吧,你可以通过反射(reflection)来做到这一点——但我个人不会。您可以在 Person 中添加一个 CopyTo 方法:

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

public void CopyTo(Person other)
{
other.Id = Id;
other.Name = Name;
}
}

另一种选择是使用组合而不是继承,例如 Student 具有 Person 属性,而不是从 Person 派生。不过,这实际上取决于更大的图景 - 您是否真的希望 Student 成为专门的 Person,或者它只是一种获取数据的简单方法?

这种问题经常出现,但我很少发现自己想在自己的代码中这样做......我很想看看需要这个的代码设计,弄清楚我是怎么做的d 设计了它。我不清楚这是否只是我没有从事鼓励这种模式的工作,或者我是否使用替代设计来解决同样的问题。

关于c# - 从继承类更改基本对象属性的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080599/

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