friend 们

如何实现以下复杂逻辑?

flag1可以是“N”或“A”或“I”
flag2可以是“N”或“A”或“I”
flag3可以是“N”或“A”或“I”

函数(字符串标志1,字符串标志2,字符串标志3)
开始

该函数需要返回:

如果flag1,flag2和flag3为“N”,则

  • 返回“无”。
  • 如果flag1,flag2和flag3为“A”,则返回“Active”
  • 否则如果flag1,flag2和flag3为“I”,则返回“无效”
  • 否则如果flag1,flag2和flag3为“A”和“I”(或“N”),则返回“both”

    例如1)标志1为“A”,标志2为“I”,标志3为“I”
    例如2)标志1为“I”,标志2为“A”,标志3为“I”
    例如2)标志1为“A”,标志2为“N”,标志3为“I”

    重播结果

    结尾

    感谢您的答复,但没有帖子给出答案。我知道是否还有其他约束条件,并且正在寻找实现以上psedocode的逻辑。这四个条件都是可能的,特别是#4很复杂,需要知道如何实现。

    最佳答案

    您对第4点的逻辑令人困惑...

    我将为此使用一个枚举值,而不是字符串-它是类型安全得多的(例如,如果有人将"WIBBLEWOBBLE"传递给您的方法该怎么办?它应该返回什么?)

    enum Value { None, Active, Inactive, Both }
    
    private Value GetValue(Value flag1, Value flag2, Value flag3) {
        if (flag1 == flag2 && flag2 == flag3)    // they are all the same
            return flag1;
        else return Value.Both;    // there is a difference
    }
    

    关于c# - 复杂的逻辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3391184/

  • 10-11 16:01