gpt4 book ai didi

C#静态成员问题

转载 作者:行者123 更新时间:2023-11-30 22:35:42 24 4
gpt4 key购买 nike

例如,我有以下静态类:

public static class f
{
public static bool IS_GUEST = (HttpContext.Current.Session["uid"] == null);
public static bool IS_ADMIN = (HttpContext.Current.Session["admin"] != null);
//...

现在,如果我使用 IS_GUEST 检查用户是否是 guest ,即使用户不是 guest ( session “uid”确实存在),我总是得到 true。对于 IS_ADMIN,无论如何,我总是错误的。 session 是在我调用 IS_GUEST 和 IS_ADMIN 之前创建的,如果我手动检查它 (HttpContext.Currest.Session[something]) 它工作正常。那么这里的问题是什么?

最佳答案

静态初始化程序在代码中的任何方法之前运行。因此很可能 HttpContext.Current.Session 在您的字段初始化时尚未初始化。将它们更改为属性,一切都应该按预期工作。

  public static class f
{
public static bool IS_GUEST
{
get
{
return (HttpContext.Current.Session["uid"] == null);
}
}
public static bool IS_ADMIN
{
get
{
return (HttpContext.Current.Session["admin"] != null);
}
}

关于C#静态成员问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com