asp.nep mvc:将当前 httpcontext 中的值设置为常量变量
asp.nep mvc: setting values from current httpcontext to constant variables
您好,我目前正在开发 asp.net 应用程序,我有一个 class,我需要在其中检查当前上下文中是否存在特定的 cookie。
到目前为止它工作正常,但是有人告诉我,最好以这种方式将布尔值检查作为常量:
const bool labelcookieexists = HttpContext.Current.Request.Cookies.AllKeys.Contains("MyCookie");
然而,当我这样做时,智能感知开始抱怨,并说表达式不是常量。
有人可以解释一下当前 httpcontext 中的东西是否可以声明为常量。我真的不明白为什么它不能自己
非常感谢
您的左侧变量是常量,但右侧表达式是运行时常量,应该是编译时常量。
您的右手表达式将在运行时 return 值,因此您不能将其分配给常量。它在编译时需要值,这就是你出错的原因。
可以使用readonly,支持运行时常量。
private readonly static bool labelcookieexists = System.Web.HttpContext.Current.Request.Cookies.AllKeys.Contains("MyCookie");
A 常量 是一个在应用程序的生命周期内永远保持不变的值。而且因为你正在从 cookie 中读取值,即使它是一次,这意味着这个值不是一个常量......使用 readonly
您好,我目前正在开发 asp.net 应用程序,我有一个 class,我需要在其中检查当前上下文中是否存在特定的 cookie。 到目前为止它工作正常,但是有人告诉我,最好以这种方式将布尔值检查作为常量:
const bool labelcookieexists = HttpContext.Current.Request.Cookies.AllKeys.Contains("MyCookie");
然而,当我这样做时,智能感知开始抱怨,并说表达式不是常量。
有人可以解释一下当前 httpcontext 中的东西是否可以声明为常量。我真的不明白为什么它不能自己
非常感谢
您的左侧变量是常量,但右侧表达式是运行时常量,应该是编译时常量。
您的右手表达式将在运行时 return 值,因此您不能将其分配给常量。它在编译时需要值,这就是你出错的原因。
可以使用readonly,支持运行时常量。
private readonly static bool labelcookieexists = System.Web.HttpContext.Current.Request.Cookies.AllKeys.Contains("MyCookie");
A 常量 是一个在应用程序的生命周期内永远保持不变的值。而且因为你正在从 cookie 中读取值,即使它是一次,这意味着这个值不是一个常量......使用 readonly