Я не хочу следовать стилю письма. указанное просто вне допустимого диапазона должно быть записано один раз
var a = 100; // valid range 1..100_000 int32
var b = 10_000; // valid range 100..30_000_000 int32
if( a <= 1000)
{
// avoid overflow
if( b < a * 100)
{
// both out of range
}
}
else if( b < 100_000)
{
// both out of range
}
придумал следующий стиль, не подходит на первый взгляд ...
if( a <= 1000 ? b < a * 100 : b < 100_000)
{
// both out of range
}
оператор switch? не хорошо ...
var lessEqual1000 = "a <= 1000";
var greater1000 = "a > 1000";
switch( a <= 1000 ? lessEqual1000 : greater1000)
{
case lessEqual1000 when b < a* 100:
case greater1000 when b < 100_000:
// both out of range
}
что лучше?
========================= =============
Босс показал мне свой ответ. конечно, он выглядит лучше.
if( b < (a < 1000 ? a * 100 : 100_000))
{
// both out of range
}
в дополнение к этому, без переполнения он должен следовать.
if( b < Math.Min( a * 100, 100_000))
{
// both out of range
}
// following style hit upon me...
if( b < Math.Min(Math.BigMul(100, a), 100_000))
{
// both out of range
}
где я могу написать хорошо стилизованный код в c#? ...