首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CodeDom的复杂if语句

使用CodeDom的复杂if语句
EN

Stack Overflow用户
提问于 2017-03-14 12:38:24
回答 1查看 121关注 0票数 0

我想知道用c#语法表示的if语句转换成CodeDom有多复杂。可能没有CodeDom表达式对象来表示分组(在c#中表示为圆括号),因为这可能被认为是与语言相关的,而CodeDom并非如此。

为了便于讨论,假设有一个复杂的if语句,如下所示(过度缩进只是为了提高可读性...)我如何在CodeDom表达式中表示它?

代码语言:javascript
复制
if (
            ( 
                (
                    x == 1                  
                    &&              
                    y == 2                  

                    &&                 
                    z == 3                    
                )                           
                ||
                (
                    x == 2                  
                    &&              
                    y == 1                  
                 )                          
            )                               
            ||      
            (
                (
                    A == 1                  
                    ||              
                    A == 3                  
                )                           
                &&
                (
                    B == 2                  
                    ||              
                    B == 5                  
                )                           
            )                               

            &&
            C == 123                          


);//end if
EN

回答 1

Stack Overflow用户

发布于 2017-03-14 13:01:41

我想我知道这是怎么回事了..。这一切都归结为用一个二元运算符表达式对象来表示每个单独的比较。

所以从本质上讲,我最终会得到一系列嵌套的CodeBinaryOperatorExpression对象,它们通过左侧和右侧代码表达式链接在一起……

代码语言:javascript
复制
if ( 
     (
        ( 
            (
                x == 1                  //A
                &&              
                y == 2                  //B
                                        //C == A && B
                &&                 
                y == 3                  //D  
            )                           //E = C && D
            ||
            (
                x == 2                  //F
                &&              
                y == 1                  //G
             )                          //H == F && G
        )                               //I == E || H
        ||      
        (
            (
                A == 1                  //J
                ||              
                A == 3                  //K
            )                           //L = J || K
            &&
            (
                B == 2                  //M
                ||              
                B == 5                  //N
            )                           //O = M || N
        )                               //P = L && O
      )                                 //Q = I || P
      &&
      z = 123                           //R 
                                        //S = Q && R
   ) //end if
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42777850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档