检查枚举值-替代30个案例的开关案例?

葡萄

我需要确定所有条件是否都符合特定条件。

public class OfferServiceConditionDto
{

    public long Id { get; set; }

    public Parameter Parameter { get; set; }

    public Enums.Condition Condition { get; set; }

    public double? Value { get; set; }

    [JsonIgnore]
    public long? OfferSubServiceId { get; set; }
}

参数有5种情况:

public enum Parameter : int
{
    Length,
    Width
    Height,
    Area,
    Volume
}

病情有6件:

public enum Condition : int
{
    LessThan,
    LessThanOrEqualTo,
    Equals,
    GreaterThan,
    GreaterThanOrEqualTo,
    DoesNotEqual
}

在我的函数中,我得到了元素的宽度,高度和长度,我需要根据OfferServiceConditionDto条件,参数和值进行检查。

到目前为止,我只考虑交换案件,如果那是30张支票。

还有更好的选择吗?

清扫器

只需提取一些方法即可。这样,您可以轻松地将30(5 * 6)个案例转换为11(5 + 6)个案例。

public static bool CheckCondition(double width, double height, double length, OfferServiceConditionDto dto) {
    switch (dto.Parameter) {
    case Parameter.Length:
        return CheckCondition(dto.Condition, length, dto.Value);
    case Parameter.Height:
        return CheckCondition(dto.Condition, height, dto.Value);
    // plus 3 more...
    }
    return false;
}

private static bool CheckCondition(Enums.Condition condition, double value1, double? value2) {
    if (value2 == null) {
        return true; // decide what to do if Value is null
    }
    switch (condition) {
    case Enums.Condition.LessThan:
        return value1 < value2.Value;
    case Enums.Condition.LessThanOrEqualTo:
        return value1 <= value2.Value;
    // plus 4 more...
    }
    return false;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Matlab开关案例中的Java枚举

来自分类Dev

重用开关/案例中的变量存储值

来自分类Dev

如何在PHP的另一个开关案例块中检索分配给一个开关案例块中变量的值?

来自分类Dev

angularjs在一个开关案例中包含两个值

来自分类Dev

如何通过不获取另一个案例的值在 switch case 中创建 if 语句?

来自分类Dev

如何在开关案例中使用枚举类

来自分类Dev

带枚举的dart开关案例中缺少case子句错误

来自分类Dev

为原始数据集中的变量的每个值创建一个具有一个案例的新数据集

来自分类Dev

Scala开关在成功匹配后继续匹配下一个案例

来自分类Dev

Scala开关在成功匹配后继续匹配下一个案例

来自分类Dev

C#多开关案例相同值的Lambda语法

来自分类Dev

开关/案例中定义的变量是否保留其值?

来自分类Dev

从开关案例中在Linq中添加条件值

来自分类Dev

在Haxe开关/案例中,是否可以将案例'xx':与默认值混合?

来自分类Dev

Azure逻辑应用程序-如何为案例添加具有多个值的开关案例

来自分类Dev

如何获得具有多个案例的动画函数,这些案例控制 Javascript 中的 CSS 值以进行渲染?

来自分类Dev

如何在if条件下检查至少一个枚举值是否等于变量

来自分类Dev

Mongo再写一个案例

来自分类Dev

枚举和快速案例

来自分类Dev

在java中读取CSV文件并检索处理所有n个案例的值

来自分类Dev

如何在R中创建一个新变量,如果一个案例缺少一个值而另一个变量具有一个观察到的值,则返回1?

来自分类Dev

选择多个案例

来自分类Dev

无效的个案例外

来自分类Dev

使用多个案例是 <>

来自分类Dev

如何获取枚举案例的数量并且枚举值必须为 int

来自分类Dev

替代案例?

来自分类Dev

在scala中建议使用枚举(与包括特征/案例对象的替代方法相比)吗?

来自分类Dev

如何获得枚举案例的价值?

来自分类常见问题

在Scala中比较2个案例类实例

Related 相关文章

  1. 1

    Matlab开关案例中的Java枚举

  2. 2

    重用开关/案例中的变量存储值

  3. 3

    如何在PHP的另一个开关案例块中检索分配给一个开关案例块中变量的值?

  4. 4

    angularjs在一个开关案例中包含两个值

  5. 5

    如何通过不获取另一个案例的值在 switch case 中创建 if 语句?

  6. 6

    如何在开关案例中使用枚举类

  7. 7

    带枚举的dart开关案例中缺少case子句错误

  8. 8

    为原始数据集中的变量的每个值创建一个具有一个案例的新数据集

  9. 9

    Scala开关在成功匹配后继续匹配下一个案例

  10. 10

    Scala开关在成功匹配后继续匹配下一个案例

  11. 11

    C#多开关案例相同值的Lambda语法

  12. 12

    开关/案例中定义的变量是否保留其值?

  13. 13

    从开关案例中在Linq中添加条件值

  14. 14

    在Haxe开关/案例中,是否可以将案例'xx':与默认值混合?

  15. 15

    Azure逻辑应用程序-如何为案例添加具有多个值的开关案例

  16. 16

    如何获得具有多个案例的动画函数,这些案例控制 Javascript 中的 CSS 值以进行渲染?

  17. 17

    如何在if条件下检查至少一个枚举值是否等于变量

  18. 18

    Mongo再写一个案例

  19. 19

    枚举和快速案例

  20. 20

    在java中读取CSV文件并检索处理所有n个案例的值

  21. 21

    如何在R中创建一个新变量,如果一个案例缺少一个值而另一个变量具有一个观察到的值,则返回1?

  22. 22

    选择多个案例

  23. 23

    无效的个案例外

  24. 24

    使用多个案例是 <>

  25. 25

    如何获取枚举案例的数量并且枚举值必须为 int

  26. 26

    替代案例?

  27. 27

    在scala中建议使用枚举(与包括特征/案例对象的替代方法相比)吗?

  28. 28

    如何获得枚举案例的价值?

  29. 29

    在Scala中比较2个案例类实例

热门标签

归档