【问题标题】:asp.nep mvc: setting values from current httpcontext to constant variablesasp.net mvc:将当前 httpcontext 的值设置为常量变量
【发布时间】:2019-10-24 09:16:42
【问题描述】:

您好,我目前正在开发 asp.net 应用程序,并且我有一个类,我需要在其中检查当前上下文中是否存在特定的 cookie。 到目前为止它工作正常,但是有人告诉我,最好以这种方式将布尔值作为常量检查:

const bool labelcookieexists = HttpContext.Current.Request.Cookies.AllKeys.Contains("MyCookie");

但是当我这样做时智能感知开始抱怨,并说表达式不是 const。

谁能解释当前httpcontext中的东西是否可以声明为常量。我真的不明白为什么它不能自己

非常感谢

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc sitecore


    【解决方案1】:

    您的左侧变量是常量,但右侧表达式是运行时常量,它应该是编译时常量。

    您的右手表达式将在运行时返回值,因此您不能将其分配给常量。它在编译时需要值,这就是你的错误的原因。

    你可以为它使用只读,它支持运行时常量。

    private readonly static bool labelcookieexists = System.Web.HttpContext.Current.Request.Cookies.AllKeys.Contains("MyCookie");
    

    【讨论】:

      【解决方案2】:

      常量是一个在应用程序的生命周期内永远保持不变的值。并且因为您正在从 cookie 中读取值,即使是一次,也意味着该值不是常量...使用readonly

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多