.net中度数转弧度的扩展方法

Extension Method for degree to Radian conversion in .net

我有一个变量 theetaCurrent,它由另一个应用程序以 10 度发送给我。我可以很容易地通过使用函数在任何地方转换它,但我想做类似 theetaCurrent.ToRadians() 的事情。首先,这可能吗?如果是,那么如何? 下面是我目前的方法

double inRadians (double angleIn10thofaDegree)
{
    // Angle in 10th of a degree
    return (angleIn10thofaDegree*Math.PI)/1800; 
}

感谢您的帮助。

是的,你可以定义一个extension method:

<b>public static class Foo {</b>

    <b>public static</b> double <b>ToRadians</b> (<b>this</b> double angleIn10thofaDegree) {
        // Angle in 10th of a degree
        return (angleIn10thofaDegree * Math.PI)/1800; 
    }

<b>}</b>

您必须进行的更改以粗体显示:

  • 制作方法static;
  • 将名称更改为 ToRadians;
  • 在参数中添加this;和
  • staticclass.
  • 中定义方法

如果你想用theetaCurrent.<b>ToRadians()</b>调用它,你只需要更改名称当然。

为了使用扩展方法,您必须使用定义了Foo的命名空间

您可以通过以下方式调用它:

double result = original.ToRadians();

如果您打算使用扩展方法执行 就地 转换,例如:

double theetaCurrent = 180/Math.PI;
theetaCurrent.ToRadians();
//now theetaCurrent is 0.1

这将是一种带有 按引用调用 的扩展方法,据我所知,它不受支持。参见 a Whosebug answer of Jon Skeet here