...是否可以?
例如,我可以添加这个简单的功能......
public static double Deg2Rad(double degrees) {
return Math.PI / 180 * degrees;
}
……Convert
上课?所以(使用默认的...“usings”)你可以调用
double radians = Convert.Deg2Rad(123);
这可以做到吗?如果是这样,怎么做?
...是否可以?
例如,我可以添加这个简单的功能......
public static double Deg2Rad(double degrees) {
return Math.PI / 180 * degrees;
}
……Convert
上课?所以(使用默认的...“usings”)你可以调用
double radians = Convert.Deg2Rad(123);
这可以做到吗?如果是这样,怎么做?
不,这是不可能的。Convert
如果不是,您可以使用扩展名static
,但不是。
double
您可以使用以下this
关键字添加扩展名:
public static double Deg2Rad(this double degrees) {
return Math.PI / 180 * degrees;
}
并像这样使用它:
double radians = (123D).Deg2Rad();
不过,您必须将您的方法放在一个static
类中才能正常工作。
你可以得到你想要的。C# 有“扩展方法”。这允许您将方法添加到另一个类,即使该类位于另一个您没有源代码的程序集中。但是,您不能将静态函数添加到另一个类。您只能添加实例方法。
有关详细信息,请参阅MSDN 扩展方法。
不,你不能,但你可以添加一个扩展方法double
并像这样调用它
double x = 180.0;
double y = Math.Cos( x.Deg2Rad() );
double z = Math.Sin( 0.5.Pi() );
在静态类中添加以下扩展方法:
public static class ExtensionMethods
{
public static double Deg2Rad(this double angle)
{
return Math.PI*angle/180.0;
}
public static double Pi(this double x)
{
return Math.PI*x;
}
}
不,你不能,但你真的不需要 - 你可以声明你自己的静态类,例如:
public static class MyConvert
{
public static double Deg2Rad(double degrees)
{
return Math.PI / 180 * degrees;
}
}
用法:
double radians = MyConvert.Deg2Rad(123);
(显然MyConvert
是一个垃圾名字,但你明白了)。
上述方法与系统Convert
类上的方法之间的唯一区别是,如果它在Convert
类上,它看起来像一个内置函数,但你很难说服我这实际上是一件好事(我想知道什么时候我正在调用框架代码与内部维护的代码)。
除了这里所说的之外,还有另一个选项是部分类(这不适用于转换)。
如果该类被声明为分部,那么您可以通过另一个分部类添加方法,即使它位于另一个程序集 (DLL) 中。
但是,同样,必须首先声明该类才能使其工作。