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