gpt4 book ai didi

c# - 表示数字的值类型是否共享任何接口(interface)?

转载 作者:太空狗 更新时间:2023-10-29 23:41:59 24 4
gpt4 key购买 nike

我希望能够创建具有可变精度的各种结构。例如:

public struct Point<T> where T : INumber
{
public T X;
public T Y;

public static Point<T> operator +(Point<T> p1, Point<T> p2)
{
return new Point<T>
{
X = p1.X+p2.X,
Y = p1.Y+p2.Y
};
}
}

我知道 Microsoft 通过创建两个结构来处理这个问题 - Point(对于整数)和 PointF(对于 float ),但是如果您需要基于字节的点或 double ,那么您将需要复制大量旧代码并仅更改值类型。

最佳答案

您不能这样做的原因很简单:运算符是非虚拟的,即编译器必须在编译时知道 p1.X+p2.X是整数加法或双倍加法。

关于c# - 表示数字的值类型是否共享任何接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340824/

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