gpt4 book ai didi

c# - 继承或标识符

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:22 26 4
gpt4 key购买 nike

这里有人对何时使用用户继承以及何时改用标识符有意见吗?

继承示例:

class Animal 
{
public int Name { get; set; }
}

class Dog : Animal {}

class Cat : Animal {}

标识符示例:

class Animal 
{
public int Name { get; set; }

public AnimalType { get; set; }
}

在什么情况下我应该更喜欢哪种解决方案,它们的优缺点是什么?

/丽娜

最佳答案

这取决于您需要在系统中完成的操作类型。例如,如果你有一些共同的 Action ,应该以不同的方式为你的每个对象完成,而不是你应该使用继承,例如:

class Shape 
{
public abstract void Draw();
}

class Circle : Shape
{
public override void Draw()
{
/* Custom implementation for Circle. */
}
}

class Box : Shape
{
public override void Draw()
{
/* Custom implementation for Box. */
}
}

另一方面,如果某种类型的和对象更像它的属性,您应该使用所谓的“标识符”:

enum Color
{
Red,
Green,
Blue
}

class Box
{
public Color BoxColor { get; set; }
}

你可以在这里使用继承(但它看起来不太好):RedBox,BlueBox等。不同之处在于所有的框(即使是不同颜色的框)都将以相同的方式处理,它们的行为将是常见。

关于c# - 继承或标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2453250/

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