Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查范围和设置默认值时简化if子句_C#_If Statement_Sbyte - Fatal编程技术网

C# 检查范围和设置默认值时简化if子句

C# 检查范围和设置默认值时简化if子句,c#,if-statement,sbyte,C#,If Statement,Sbyte,我有一个函数,它将一个double值转换为sbyte,并返回其十六进制表示形式: string convertToSByte(double num, double factor) { double _Value = num * factor; if (_Value > 127) { _Value = 127; } else if (_Value < -127) { _Value = -127;

我有一个函数,它将一个
double
值转换为
sbyte
,并返回其十六进制表示形式:

string convertToSByte(double num, double factor)
{

    double _Value = num * factor;

    if (_Value > 127)
    {
        _Value = 127;
    }
    else if (_Value < -127)
    {
        _Value = -127;
    }

    return Convert.ToSByte(_Value).ToString("X2");
}
string convertToSByte(双数值,双因子)
{
double _值=num*因子;
如果(_值>127)
{
_数值=127;
}
否则如果(_值<-127)
{
_值=-127;
}
返回Convert.ToSByte(_值).ToString(“X2”);
}
计算的
\u值
应在
[-127;127]
范围内,如果不在范围内,则必须将这些值设置为默认值

问题:如何简化这两个if条件和默认值的设置

编辑:

我尝试使用条件运算符
,但实际上它并不简单(甚至有点难读),而且代码也不太少


附:这个问题更多的是为了教育目的。要找到检查变量范围的不同方法,可以使用
Min
/
Max

string convertToSByte(double num, double factor)
{
    var value = Math.Min(127, Math.Max(-127.0, num * factor));
    return Convert.ToSByte(value).ToString("X2");
}

您可以使用
Min
/
Max

string convertToSByte(double num, double factor)
{
    var value = Math.Min(127, Math.Max(-127.0, num * factor));
    return Convert.ToSByte(value).ToString("X2");
}

壮观的非常感谢你。我等了一会儿,等待其他答案的到来,但你的帖子是第一个接受正确答案的候选人。太棒了!非常感谢你。我等着其他答案的到来,但你的帖子是第一个接受正确答案的候选人。你为什么需要简化?您的代码非常简单、直接且易于理解。@HimBromBeere我想是为了学会用不同的方式思考。它更具有教育效果。在生产代码中,我总是喜欢这种我发布的写作方式为什么需要简化?您的代码非常简单、直接且易于理解。@HimBromBeere我想是为了学会用不同的方式思考。它更具有教育效果。在生产代码中,我总是喜欢我发布的这种写作方式