RT~~比如……void DoWork()
{
  //XX
   if(DoWork1(arg1,arg2) && DoWork2(arg1,arg2) && ....)
   {
   }
   else
   {
   }
  //XX
}void DoWork1(arg1,arg2)
{
   //Doing.....
   return this.AllowDoing(something) && this.DenyDoing(something) && ....;
}假设这个表达式比较复杂,那么如何查看这个返回值?比如说我断点设置在 DoWork1 的最后一行,如何避免一个函数一个函数的F11逐一查看,而可以直接看到返回值结果。这个方法例外: bool result = this.AllowDoing(something) && this.DenyDoing(something) && ....;

解决方案 »

  1.   


    加语句,类似下面结构
    void DoWork1(arg1,arg2)
    {
       //Doing.....
       
       string str= this.AllowDoing(something) && this.DenyDoing(something) && ....   return str ;  
    }
      

  2.   


    不是很清楚你要什么效果,断点调试时试下这个是不是你要的吧另外楼主最好也注意下举例是否恰当,返回值类型为void时,return后居然还接对象表达式
      

  3.   

    在最后一句设置断点,调试到这个断点的时候,有即时窗口中写入“this.AllowDoing(something) && this.DenyDoing(something) && ....;” 这句后回车,不就显示了吗?
    不过,就像楼上说的。void DoWork()没有返回值,怎么能returnk呢
      

  4.   

    如果察看返回值这么重要,就
    var tmpResult = (你的表达式);
    不就行啦。
    搞不懂在问什么
      

  5.   

    汗死,可能我表达的不是很清楚。我拿出其中一段代码说吧。        /// <summary>
            /// 概述:检验当前用户是否允许访问。
            /// <para>说明:允许访问则返回【true】,否则返回【false】。</para>
            /// </summary>
            /// <param name="allowList">允许访问的用户集合以及角色集合。</param>
            private bool AllowValidate(string allowList)
            {
                //用于拆分组合。这个数组是拆分【1,2,3|4,5,6】的【|】,
                string[] userList_roleList = allowList.Split('|');
                if (
                       allowList == "." ||
                       this.InUserList(userList_roleList[0], allowList) ||
                       (userList_roleList.Length == 2 && v.IsAuthorized && this.ValiRole(userList_roleList[1]))
                    )
                    return true;// 到这里验证成功,返回 true
                return false;
                /********************************
                 * if (
                 *      允许所有用户 ||
                 *      存在于【用户允许列表】或者允许的范围 || 
                 *      ( 用户处于登录状态 && 存在要检验的【角色允许列表】 && 抽取【角色允许列表】并验证成功 )
                 *    )
                 *    return 允许登录(true);
                 ********************************/
            }这段代码的判断语句包含两个函数(this.InUserList、this.ValiRole),这里,我只展示InUserList
            /// <summary>
            /// 概述:检验当前用户是否包含在用户列表里,或者符合【sourceList】的定义(允许的范围)。
            /// <para>说明:当前用户含在给定的用户列表中,或者在允许的范围内返回【true】,否则返回【false】。</para>
            /// </summary>
            /// <param name="userList">用户列表。</param>
            /// <param name="sourceList">允许或拒绝列表。</param>
            private bool InUserList(string userList, string sourceList)
            {
                if (userList.IsNull() || sourceList.IsNull()) return false;  // 用户允许列表不存在,检验失败            return v.IsAuthorized ?                                   // 1、当用户已登录
                        (
                            sourceList == "*" ||                             // 1.1、允许注册用户访问
                            (
                                sourceList != "?" &&                         // 1.2、非允许匿名用户
                                this.ValiUser(userList)                      // 1.2、且在允许列表中
                            )
                        )
                        :                                                    // 2、当用户未登录
                        sourceList == "?";                                   // 2.1、允许匿名用户
                /********************************
                 * 
                 * return 当前用户已登录 ?
                 * (
                 *      是允许注册用户 ||
                 *      (
                 *          不是允许匿名用户 &&
                 *          存在允许的列表里
                 *      )
                 * )
                 *  :
                 * 是允许匿名用户
                 * 
                 ********************************/
            }可以看到,这样的代码,我很多是将“操作”直接拼接在返回值里。
      

  6.   

    坦白说,BUG 似乎解决了。嘿嘿。这个问题纯属探讨吧。