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