PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_Sharp
[问题] 静态变量会不见吗?
楼主:
wind681201
(阿风~~)
2020-09-10 11:05:08
请问各位大大,以下程式码,_users常会因null而错误,
但已经用private static 来宣告了,不是应该不会让_users为null吗?
public static class Users
{
private static Dictionary<string, User> _users = new Dictionary<string,
User>();
public static List<User> AllUser { get { return _users.Select(x=>
x.Value).ToList(); } }
public static void Add(this IIdentity _id, User _user)
{
if (_users is Dictionary<string, User>)
{
_users[_user.ID] = _user; //在这边常会因为 _users是null而错误。
}
}
}
作者:
awwseed
(MOTO RIDER)
2020-09-10 11:40:00
Code可以贴在
https://dotnetfiddle.net/
等地方方便阅读不过你的问题应该是 _users[_user.ID] 不存在才炸?检查是否存在的话用 .ContainsKey() 可能比较好
https://dotnetfiddle.net/G1h69G
不确定你其他地方是否有对 _users 做操作
作者:
petercoin
(彼得币)
2020-09-10 12:29:00
同楼上 key不存在时要用Add 不然就exception了
作者:
Litfal
(Litfal)
2020-09-10 13:24:00
dict透过的索引键set不会跳错啦
作者:
awwseed
(MOTO RIDER)
2020-09-10 13:37:00
原来 Dict 透过索引不会炸错XD那就比较可能是 Users 里面有其他地方对 _users 有操作?
楼主:
wind681201
(阿风~~)
2020-09-10 15:08:00
但这就是问题,其它地方没有让_users变null的问题都是在add,就算remove key也不会让_users变null而且在新增时,我检查过一次_users是不是null了
作者:
gn1943141
(鸠脸)
2020-09-10 15:56:00
readonly一定有什么地方赋空值,private跟static没保证不能赋值,可能是时序问题导致或null的是user而不是users,确认看看
作者: t64141 (榕树)
2020-09-10 16:16:00
有没有可能 _user 是 null, 所以 _user.ID 抛错,但因为位置与名字都跟 _users 太接近所以看错了?
作者:
petercoin
(彼得币)
2020-09-10 16:50:00
@Litfal 谢谢你的指正XD 我记成C++的map了QQ
楼主:
wind681201
(阿风~~)
2020-09-10 17:56:00
t64141你说的很有可能,因为重现了一样的错误我会再过滤user.id的部份,谢谢
作者:
haves560
(新鲜人)
2020-09-13 11:56:00
注意iis 回收 可能也会导致此问题
作者:
Litfal
(Litfal)
2020-09-13 14:25:00
iis回收会导致内容不见,但不会null,重新启动就重建
楼主:
wind681201
(阿风~~)
2020-09-14 18:07:00
我也想过IIS的问题,但是,有可能回收时,正好在执行中吗?然后会造成不见?
作者: kaneson (Lance)
2020-09-24 09:19:00
我觉得是Add()传参数发生此_user非彼_user喔,变量名称我看错了,抱歉
继续阅读
[问题] 物件被鼠标指定 叫什么功能?
ChenRobert
[问题] 有没有着重在GUI方面的书 Winform WPF
nietz
[问题] 请问,如何用struct 写阵列?
ChenRobert
Re: [问题] 远端连线执行cefsharp
Laluth
[情报] .NET 5开始支援半精度浮点数Half类型
name2name2
Re: [问题] 如何打开raw image file
morningjis
[问题] 如何引用dll的全域变量
peng0116
[问题] 如何打开raw image file
morningjis
[问题] Socket server 接收 winsock的资料
destinyXfate
[问题] 有关于get 到 file 排序问题
ChenRobert
Links
booklink
Contact Us: admin [ a t ] ucptt.com