gpt4 book ai didi

c# - 如何为 int、double、float 等正确编写数学扩展方法?

转载 作者:太空狗 更新时间:2023-10-29 23:35:42 25 4
gpt4 key购买 nike

我想编写一系列扩展方法来简化数学运算。例如:

代替

Math.Pow(2, 5)

我希望能够写作

2.Power(5) 

哪个(在我看来)更清楚。

问题是:在编写扩展方法时如何处理不同的数字类型?我是否需要为每种类型编写一个扩展方法:

public static double Power(this double number, double power) {
return Math.Pow(number, power);
}
public static double Power(this int number, double power) {
return Math.Pow(number, power);
}
public static double Power(this float number, double power) {
return Math.Pow(number, power);
}

或者是否存在允许单个扩展方法适用于任何数字类型的技巧?

谢谢!

最佳答案

不幸的是,我认为您受困于这三种实现。从单个定义中获取多个类型化方法的唯一方法是使用泛型,但不可能编写一个泛型方法来专门为数字类型做一些有用的事情。

关于c# - 如何为 int、double、float 等正确编写数学扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/961038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com