如何使用减号减去 dotnet core 中的对象?类似于 日期时间

How can I subtract an object in dotnet core using the minus symbol? Similar to DateTime

dotnet 中的 DateTimes 可以使用符号 (-) 相互减去,结果得到一个跨度。如何复制 DateTime 的行为以使用 - 符号但用于我自己的自定义对象

例如

Datetime a = DateTime.UtcNow();
Datetime b = DateTime.UtcNow();
Span c = b-a;

谢谢

您要找的是运算符重载。在此处查看参考资料:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/operator-overloading

当然,实现将完全取决于您需要置于运算符之下的逻辑。当然,您不必 return 与您的操作数相同的类型。

你的post中的例子是这样实现的:

public static TimeSpan operator -(DateTime d1, DateTime d2) {
  return new TimeSpan(d1.InternalTicks - d2.InternalTicks);
}

看这里:https://referencesource.microsoft.com/#mscorlib/system/datetime.cs,1503