if语句和“?/:”运算符之间的区别

祖兹克斯

我在这里有这段代码。case ServiceType.Register:我看来,有两个等效的语句,一个使用正则if语句,一个使用三元运算符?/:对于该if语句,VS报告没有错误。但是用这行:

IsXML == true ? PopulateRegister(ParseType.Xml) : PopulateRegister(ParseType.Str);

VS错误地说:

只能将赋值,调用,递增,递减,等待和新对象表达式用作语句

有人知道为什么常规if语句没有错误,但是如果您使用“?/:”(一个衬里)会引发错误?Pic也已附加。

switch (this.ServiceType)
{
    case SerivceType.Login:
        PopulateLogin();
        break;
    case SerivceType.Register:

        if (IsXML == true)
            PopulateRegister(ParseType.Xml);
        else
            PopulateRegister(ParseType.Str);

        IsXML == true ? PopulateRegister(ParseType.Xml) : PopulateRegister(ParseType.Str);

        break;
    case SerivceType.Verify:
        PopulateVerify();
        break;
}

在此处输入图片说明

鲁弗斯·L

?:运营商用于有条件分配,不操作。

该声明:

IsXML == true ? PopulateRegister(ParseType.Xml) : PopulateRegister(ParseType.Str);

如果该方法PopulateRegister返回一个值,并且您将该值分配给了某些值,则将是有效的例如,这将是有效的:

string result = (someCondition) ? "condition is true" : "condition is false";

您可能想用这种方式代替条件(请注意,我们将ParseType枚举值用作条件的返回类型,并且它充当方法的参数):

PopulateRegister((IsXML) ? ParseType.Xml : ParseType.Str);

请注意,以上是可能的,但是会产生难以理解/调试/维护的代码,通常不会被视为最佳实践。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

运算符和方法之间的区别

来自分类Dev

<>和!=比较运算符之间的区别?

来自分类Dev

函数组合运算符(。)和fmap(<$>)之间的区别

来自分类Dev

VHDL中的mod和rem运算符之间的区别?

来自分类Dev

条件运算符和if-else之间的区别:

来自分类Dev

Boost.Spirit:运算符“%=”和“ =”之间的区别

来自分类Dev

Python:+ =运算符和追加之间的区别

来自分类Dev

Java中前缀和后缀++运算符之间的区别

来自分类Dev

<< / >>运算符重载和输入/输出功能之间的区别

来自分类Dev

C和C ++之间关于“ ^ =”运算符的区别

来自分类Dev

使用.get()和->运算符之间有区别吗?

来自分类Dev

解引用运算符(*)char *和int *之间的区别

来自分类Dev

Unicode和ASCII运算符之间的区别

来自分类Dev

<>和Microsoft Access中的NOT运算符之间的区别?

来自分类Dev

点运算符和get方法之间的区别

来自分类Dev

小部件和运算符之间的区别-Fiware?

来自分类Dev

at() 和重载运算符 [ ] C++ 之间的区别

来自分类Dev

之间的区别。EL 中的运算符和 []

来自分类Dev

Laravel 4,雄辩-在语句和运算符之间

来自分类Dev

三元运算符和 && 运算符之间的确切区别是什么?

来自分类Dev

react-redux 减速器中扩展运算符和没有扩展运算符之间的区别

来自分类Dev

$ geoWithin和$ geoIntersects运算符的区别?

来自分类Dev

嵌套if语句和“ &&”运算符

来自分类Dev

BinaryReader和while语句运算符

来自分类Dev

-和-减法运算符号之间的区别

来自分类Dev

AddAssign和'+ ='运算符之间的关系

来自分类Dev

ECMAScript 2016幂运算符和Math.pow()之间的区别

来自分类Dev

Angular 2:ngIf指令中比较运算符==和===之间有什么区别

来自分类Dev

NSPredicate中ALL,ANY和SOME运算符之间的区别

Related 相关文章

  1. 1

    运算符和方法之间的区别

  2. 2

    <>和!=比较运算符之间的区别?

  3. 3

    函数组合运算符(。)和fmap(<$>)之间的区别

  4. 4

    VHDL中的mod和rem运算符之间的区别?

  5. 5

    条件运算符和if-else之间的区别:

  6. 6

    Boost.Spirit:运算符“%=”和“ =”之间的区别

  7. 7

    Python:+ =运算符和追加之间的区别

  8. 8

    Java中前缀和后缀++运算符之间的区别

  9. 9

    << / >>运算符重载和输入/输出功能之间的区别

  10. 10

    C和C ++之间关于“ ^ =”运算符的区别

  11. 11

    使用.get()和->运算符之间有区别吗?

  12. 12

    解引用运算符(*)char *和int *之间的区别

  13. 13

    Unicode和ASCII运算符之间的区别

  14. 14

    <>和Microsoft Access中的NOT运算符之间的区别?

  15. 15

    点运算符和get方法之间的区别

  16. 16

    小部件和运算符之间的区别-Fiware?

  17. 17

    at() 和重载运算符 [ ] C++ 之间的区别

  18. 18

    之间的区别。EL 中的运算符和 []

  19. 19

    Laravel 4,雄辩-在语句和运算符之间

  20. 20

    三元运算符和 && 运算符之间的确切区别是什么?

  21. 21

    react-redux 减速器中扩展运算符和没有扩展运算符之间的区别

  22. 22

    $ geoWithin和$ geoIntersects运算符的区别?

  23. 23

    嵌套if语句和“ &&”运算符

  24. 24

    BinaryReader和while语句运算符

  25. 25

    -和-减法运算符号之间的区别

  26. 26

    AddAssign和'+ ='运算符之间的关系

  27. 27

    ECMAScript 2016幂运算符和Math.pow()之间的区别

  28. 28

    Angular 2:ngIf指令中比较运算符==和===之间有什么区别

  29. 29

    NSPredicate中ALL,ANY和SOME运算符之间的区别

热门标签

归档