我试图从“十进制”中写出一个扩展方法,该方法计算给定数字相对于给定的下限和上下限的值。我知道这听起来有点奇怪,所以这里有一个具体的例子。
假设某一工作地点设有薪级制度,而薪级类别如下。
所以..。
以此类推。
我放在一起的扩展方法看起来是这样的,它的目的是返回一个十进制,它告诉我它是否属于给定的范围。如果是的话它会告诉我多少钱。如果没有,则返回该范围的零或最大值。老实说,这似乎是不对的。
有人能证实这是正确的逻辑吗?也许还有人可以对其进行优化?
public static decimal ValueBetween(this decimal m, decimal lower, decimal upper = decimal.MaxValue)
{
return (m > lower)
? (m > upper)
? upper - lower
: m - lower
: 0m;
}具有预期输出的示例用法
((decimal)14).ValueBetween(0, 20) = 14
((decimal)24).ValueBetween(0, 20) = 20
((decimal)24).ValueBetween(20, 30) = 4
((decimal)24).ValueBetween(30, 40) = 0
((decimal)150).ValueBetween(40) = 110谢谢。
发布于 2013-05-02 06:48:04
我认为你所拥有的是好的,但也许你可以让它更容易读懂:
public static decimal ValueBetween(this decimal m, decimal lower, decimal upper = decimal.MaxValue)
{
if (m < lower) return 0M;
if (m > upper) return upper - lower;
return m - lower;
}https://stackoverflow.com/questions/16331822
复制相似问题