相关疑难解决方法(0)

BCL(基类库)与FCL(框架类库)

这两者有什么区别?我们可以互换使用它们吗?

.net c# terminology

92
推荐指数
6
解决办法
6万
查看次数

java有钳位功能吗?

假设我有一个value,我通常会这样做"钳制"它到一个范围,这里是范围[0..1].也就是说,如果它低于范围开始,则将其增加到范围开始,将其增加到范围结束,将其减小到范围结束.

clampedValue = Math.max(0, Math.min(1, value));
Run Code Online (Sandbox Code Playgroud)

是否有内置功能可以夹紧到一个范围内?

java clamp

52
推荐指数
6
解决办法
4万
查看次数

如何强制数字在C#范围内?

在C#中,我经常要将整数值限制为一系列值.例如,如果应用程序需要百分比,则用户输入中的整数不得小于零或大于一百.另一个例子:如果有五个网页可以访问Request.Params["p"],我希望值为1到5,而不是0或256或99999.

我常常写一个非常丑陋的代码,如:

page = Math.Max(0, Math.Min(2, page));
Run Code Online (Sandbox Code Playgroud)

甚至是丑陋的:

percentage =
    (inputPercentage < 0 || inputPercentage > 100) ?
    0 :
    inputPercentage;
Run Code Online (Sandbox Code Playgroud)

在.NET Framework中没有更智能的方法来做这些事情吗?

我知道我可以编写一个通用的方法int LimitToRange(int value, int inclusiveMinimum, int inlusiveMaximum)并在每个项目中使用它,但也许框架中已经有一个神奇的方法了?

如果我需要手动执行,那么在第一个示例中执行我正在执行的操作的"最佳"(即,更简单,更快速)的方法是什么?像这样的东西?

public int LimitToRange(int value, int inclusiveMinimum, int inlusiveMaximum)
{
    if (value >= inclusiveMinimum)
    {
        if (value <= inlusiveMaximum)
        {
            return value;
        }

        return inlusiveMaximum;
    }

    return inclusiveMinimum;
}
Run Code Online (Sandbox Code Playgroud)

.net c# math performance

31
推荐指数
5
解决办法
5万
查看次数

为什么不能推断出这种通用Clamp方法的类型?

我正在写一个代表LED的课程.基本上uintr,g和b的3个值在0到255的范围内.

我是C#的新手,从uint 1开始,这比我想要的大8位.在编写我自己的Clamp方法之前,我在网上找了一个,发现这个很棒的答案提示了一个扩展方法.问题是它无法推断出类型uint.为什么是这样?这段代码已经写完了uint.我必须明确给出类型以使其工作.

class Led
{
    private uint _r = 0, _g = 0, _b = 0;

    public uint R
    {
        get
        {
            return _r;
        }
        set
        {
            _r = value.Clamp(0, 255); // nope

            _r = value.Clamp<uint>(0, 255); // works
        }
    }
}

// https://stackoverflow.com/a/2683487
static class Clamp
{
    public static T Clamp<T>(this T val, T min, T max) where T : IComparable<T>
    {
        if (val.CompareTo(min) < 0) return min;
        else if (val.CompareTo(max) …
Run Code Online (Sandbox Code Playgroud)

c# generics extension-methods

15
推荐指数
3
解决办法
1163
查看次数

在C#中,有什么方法可以限制int变量的范围?

我声明一个这样的变量:

public static int aBtn;
Run Code Online (Sandbox Code Playgroud)

但是唯一的有效值是0、1、2、3、4和5

有什么方法可以避免以后在限制代码时避免代码出现任何问题,以便在尝试将值设置为6时发生异常。

请注意,我仍然希望能够执行以下操作:

aBtn = aBtn + 1; 
Run Code Online (Sandbox Code Playgroud)

c#

7
推荐指数
1
解决办法
329
查看次数

限制整数的最快方法

我不确定“夹紧”是否是正确的术语,但我真的不知道还能称呼它什么。假设我们想要将一个整数限制在某个任意范围内,例如 0-50。这可以通过使用 if 语句测试当前值并相应地分配最大值或最小值来轻松实现。但是,使整数保持最大值或最小值的最快方法是什么?

c# clamp

2
推荐指数
1
解决办法
8650
查看次数

.NET Framework中是否有一些内容可以检查某个值是否适合某个类型?

我需要找出一个decimal值是否适合一个类型(在运行时检测到目标类型)并将其截断为最大值或最小值,如果不是这样我可以通过网络发送它.

我想避免使用类型的大切换句子,我想可能已经在.NET Framework中有了一些东西.

.net c# validation types casting

2
推荐指数
1
解决办法
308
查看次数