检查页面参数,根据返回类型不同进行不同的操作


        /// <summary>
        /// 检查页面参数,空转错误页,不空返回原值
        /// </summary>
        /// <param name="Query">页面参数</param>
        /// <returns>转换STRING后的页面参数</returns>
        public static string CheckQueryIsNullToError(string Query)
        {
            if (!string.IsNullOrEmpty(Query))
            {
                return Query.ToString();              
            }
            else
            {
                //插入错误日志
                //new CommonDAL().SystemError("页面参数错误!不允许出现空字符串!", HttpContext.Current.Request.RawUrl.ToString());
                HttpContext.Current.Response.Redirect("~/Error.htm");
               
                return "";
               
            }
        }

        /// <summary>
        /// 检查页面参数,空返回默认值,不空返回原值
        /// </summary>
        /// <param name="Query">页面参数</param>
        /// <param name="DefaultValue">默认值</param>
        /// <returns>转换STRING后的页面参数</returns>
        public static string CheckQueryIsNullToDefault(string Query, string DefaultValue)
        {
            if (!string.IsNullOrEmpty(Query))
            {
                return Query.ToString();
               
            }
            else
            {
                return DefaultValue;
            }
        }

        /// <summary>
        /// 检查页面参数,是正整数返回原值,否则转错误页
        /// </summary>
        /// <param name="Query">页面参数</param>
        /// <returns>转换STRING后的页面参数</returns>
        public static string CheckQueryIsNumericToError(Object Query)
        {
            if (IsNumber(Query.ToString()))
            {
                return Query.ToString();
            }
            else
            {
                //插入错误日志
                //new CommonDAL().SystemError("页面参数错误!不允许出现非数字的字符!", HttpContext.Current.Request.RawUrl.ToString());
                HttpContext.Current.Response.Redirect("~/Error.htm");

                return "";
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我明白了你的问题。以下是符合要求的代码: ```c int OPT(int page_seq[], int seq_len, int mem_page_num) { int mem_page[mem_page_num]; // 存放内存页面的数组 int page_fault = 0; // 缺页次数 int next_use[mem_page_num]; // 存放每个内存页面下一次使用的时间 int i, j, k, max_next_use; // 初始化内存页面数组和下一次使用时间数组 for (i = 0; i < mem_page_num; i++) { mem_page[i] = -1; // -1 表示内存页面为空 next_use[i] = seq_len; // 下一次使用时间初始化为最大值 } // 遍历页面访问序列 for (i = 0; i < seq_len; i++) { int page = page_seq[i]; int found = 0; // 判断页面是否在内存中 for (j = 0; j < mem_page_num; j++) { if (mem_page[j] == page) { found = 1; next_use[j] = seq_len; // 更新下一次使用时间 break; } } // 页面不在内存中 if (!found) { int victim = -1; // 查找最长时间未被使用的内存页面 for (j = 0; j < mem_page_num; j++) { int use_time = next_use[j]; if (use_time < seq_len && (victim == -1 || use_time < next_use[victim])) { victim = j; } } // 将页面替换进内存 mem_page[victim] = page; next_use[victim] = seq_len; // 更新下一次使用时间 page_fault++; // 缺页次数加 1 } // 更新每个内存页面的下一次使用时间 for (j = 0; j < mem_page_num; j++) { int page2 = mem_page[j]; if (page2 != -1) { found = 0; max_next_use = -1; // 查找该页面在未来被使用的最大时间 for (k = i + 1; k < seq_len; k++) { if (page_seq[k] == page2) { found = 1; max_next_use = k; break; } } // 如果未来不再使用该页面,则置为最大值 if (!found) { max_next_use = seq_len; } // 更新下一次使用时间 next_use[j] = max_next_use; } } } return page_fault; } ``` 该函数接收三个参数:访问页面序列 `page_seq`、访问页面序列长度 `seq_len` 和最大分配内存页面数 `mem_page_num`。它返回缺页次数。 该函数实现了 OPT 页面置换算法。它维护了一个内存页面数组 `mem_page` 和一个下一次使用时间数组 `next_use`,用于记录每个内存页面下一次被访问的时间。对于页面访问序列中的每个页面,该函数首先检查页面是否已经在内存中,如果是,则更新该页面的下一次使用时间,否则执行页面置换,并更新所有内存页面的下一次使用时间。在查找最长时间未被使用的内存页面时,该函数遍历所有内存页面,并根据它们的下一次使用时间选择最长时间未被使用的页面。在更新所有内存页面的下一次使用时间时,该函数遍历所有内存页面,并查找每个页面在未来被使用的最大时间,然后更新它们的下一次使用时间。 希望能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值