gpt4 book ai didi

c# - 约束、通用变量和算术运算符

转载 作者:行者123 更新时间:2023-12-02 08:59:38 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Is there a constraint that restricts my generic method to numeric types?

(24 个回答)


7年前关闭。




我想声明一个泛型类 Simple,其中一个名为 Addition 的方法将采用两个泛型变量并使用 + 运算符将它们加在一起。我认为我可以通过为 Simple 类提供以下约束来实现这一点:

class Simple<T> where T: int
{
public T Addition(T firstInt, T secondInt)
{
return firstInt + secondInt;
}
}

我怀疑错误与仅具有以下五种类型约束的泛型有关 - ClassName、class、struct、InterfaceName、new()?那么,为什么泛型不支持 StructureName 约束类型呢?这样我们就可以在泛型变量上应用算术运算符?!

谢谢

最佳答案

A StructName约束没有意义,因为您不能从值类型继承。

如果你有类似 class Simple<T> where T : int 的东西你可以只有实例化 Simple<T>T = int , 没有类型继承自 int或任何其他值类型。

C#(CLR)缺少其他语言所知道的 type classes ,一种流行的处理运算符重载的机制,无需硬编码的编译器机制(如在 C# 中)。

关于c# - 约束、通用变量和算术运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2254085/

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