gpt4 book ai didi

c# - 对 C# 泛型使用约束有什么好处

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

谁能告诉我下面的区别是什么

public class CarCollection<T>:List<T> where T:Car{}

public class CarCollection:List<Car>{}

对我来说,它们似乎在做同样的事情,创建“Car”对象的类型安全集合。

最佳答案

当您需要有关泛型类型参数的一些信息时,约束非常有用。通过限制类型,您不仅限制了有效类型参数的集合,而且还让您自己能够根据该类型集合的公共(public)元素做出编译时决策。

在您的特定示例中,通用约束不会提供任何好处,但在其他情况下它们可以。考虑这个例子:

T foo<T>() 
{
return null;
}

此方法无法编译,因为编译器知道(我在编写该方法时也应该知道)泛型类型参数可能是无法设置为 null 的值类型。通过添加约束,我可以编译此代码:

T foo<T>() 
where T : class
{
return null;
}

我现在已将有效的通用类型参数集限制为仅类。由于编译器现在知道 T 必须是一个类,所以它允许我返回 null 因为没有无法返回 null 的场景.虽然这不是一个非常有用的示例,但我相信您可以推断出这可能有用的方法。

关于c# - 对 C# 泛型使用约束有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2886364/

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