gpt4 book ai didi

c# - 是否使用泛型?

转载 作者:太空狗 更新时间:2023-10-30 00:00:20 24 4
gpt4 key购买 nike

有一个关于是否使用泛型的简单问题,如果是,这是正确的方法吗?

正常的非泛型版本如下:

    public interface IFood
{
string name { get; set; }
}

public class Vegetables : IFood
{
#region IFood Members

public string name
{
get { return "Cabbage"; }
set{ }
}

#endregion
}

public class Cow
{
private IFood _food;

public Cow(IFood food)
{
_food = food;
}

public string Eat()
{
return "I am eating " + _food.name;
}
}

通用版本如下:

    public class Cow<T> where T : IFood
{
private T _food;
public Cow(T food)
{
_food = food
}

public string Eat()
{
return "I am eating " + _food.name;
}
}

我在通用版本中做的一切都正确吗?是否有必要使用 Generic 版本来实现 future 的增长?这只是原始场景的简单模型,但它完全相似。

最佳答案

我认为在这个具体例子中这是个坏主意。

A List<int>通常被描述为 List of int。Cow<IFood>更难描述 - 它肯定不是 IFood 的奶牛。这不是灌篮高手的争论,而是显示了一个潜在的问题。

MSDN状态:

Use generic types to maximize code reuse, type safety, and performance.

在您的示例中,通用版本不再有代码重用、类型安全和性能改进。

关于c# - 是否使用泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8162247/

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