重载指数 C# 和指数运算符

本文关键字:指数 运算符 重载 | 更新日期: 2023-09-27 18:35:43

有没有办法在 C# 中重载指数?我知道在某些语言中(无法命名任何语言),^用于指数函数,但在 C++ 和 C# 中,^是按位 XOR 运算符,它可以重载,但这不是我想要重载的。我不想使电源功能过载或其他任何东西

例如。我知道我可以和(1 << x)一起做2^x。那么,我的第二部分,C# 中是否有指数运算符,或者我必须坚持使用System.Math.Pow(base, exp);

重载指数 C# 和指数运算符

你可以创建一个扩展方法来充当 Math.Pow() 的快捷方式,这实际上是一件很常见的事情。

也许:

public static double Pow(this double a, double b)
{
    return Math.Pow(a, b);
}

因此,您可以像这样使用它:

myDouble = myDouble.Pow(3);

在扩展方法方面,您可以使用各种格式。 如果您的目标是简洁,我相信您可以想出一些您会满意的东西。

基本方言和 Matlab 使用 ^ 作为指数运算符。其他语言(Fortran,Python,F#)使用**。不幸的是,C# 没有指数运算符。

尽管可以在 C# 中重载 ^ XOR 运算符,但不建议这样做,因为使用具有不寻常且未记录含义的运算符会令人困惑。

即便如此,仅当基数和指数操作数中的一个或两个都是用户定义的类型时,才有可能重载。你不能只定义"^"来表示双精度的幂。