.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
;和
- 在
static
class. 中定义方法
如果你想用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。
我有一个变量 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
;和 - 在
static
class. 中定义方法
如果你想用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。