【发布时间】:2023-03-29 04:03:01
【问题描述】:
我正在尝试实现通用 Vector3 结构,并且当类型 T 是数字(int、float、double、long、short)时,我的结构具有允许基本数学运算的运算符
我曾认为这样做的方法是只为每个类似的东西定义 4 个基本运算符
public static Vector3<int> operator +(Vector3<int> left, Vector3<int> right)
但这给了我一个错误,即至少有一个参数必须是包含类型(在这种情况下是 Vector3)
我有理由相信有一种方法可以定义 Vector3 泛型,并且仍然具有标准运算符的便利性,但我似乎无法弄清楚我需要在语法上编写什么。
【问题讨论】:
-
公共结构 Vector3
{ T x; y; Tz; } -
我找不到
Vector3<T>课程。这是你写的吗? -
@Azeranth 请使用您正在创建的结构以及不起作用的运算符重载更新您的问题(cmets 中的代码没有帮助)。
-
@Rufus 该链接适用于
Vector3,而不是Vector3<T>。还有一个Vector<T>。但是我知道没有Vector3<T>。 -
也许this question 有一个对这里有帮助的答案?
标签: c# generics inheritance operator-overloading