在 C# 3.0 中,我知道您可以使用“this”命名法来扩展方法。
我正在尝试扩展 Math.Cos(double radians) 以包含我的新课程。我知道我可以在我现有的课程中创建一个“Cos”方法,但我只是想看看如何/是否可以为了练习而做到这一点。
在尝试了一些新事物之后,我将返回 SO 以获取输入。我被困住了。
这就是我目前所拥有的......
public class EngMath
{
/// ---------------------------------------------------------------------------
/// Extend the Math Library to include EngVar objects.
/// ---------------------------------------------------------------------------
public static EngVar Abs(this Math m, EngVar A)
{
EngVar C = A.Clone();
C.CoreValue = Math.Abs(C.CoreValue);
return C;
}
public static EngVar Cos(this Math m, EngVar A)
{
EngVar C = A.Clone();
double Conversion = 1;
// just modify the value. Don't modify the exponents at all
// is A degrees? If so, convert to radians.
if (A.isDegrees) Conversion = 180 / Math.PI;
C.CoreValue = Math.Cos(A.CoreValue * Conversion);
// if A is degrees, convert BACK to degrees.
C.CoreValue *= Conversion;
return C;
}
...