字典在包含它时不会从不同的类返回值

c#

我试图保存有关用户 SteamID 和他在游戏中的位置的信息,这是我每 0.5 秒将人传送到保存位置的代码,它可以完美地在控制台中返回此信息

键:76561198333850828,值:(605.0, 41.8, 618.5)

  IDictionary<Steamworks.CSteamID, Vector3> numberNames = new Dictionary<Steamworks.CSteamID, Vector3>();

                        while (numberNames.Count > 0)
                        {
                            foreach (KeyValuePair<Steamworks.CSteamID, Vector3> info in numberNames)
                            {
                                UnturnedPlayer steamidplayer = UnturnedPlayer.FromCSteamID(info.Key);
                                steamidplayer.Teleport(info.Value, 0);
                                Console.WriteLine("Key: {0}, Value: {1}", info.Key, info.Value);
                                await Task.Delay(TimeSpan.FromSeconds(0.5));
                            }
                        }

然而,当我试图从不同类的字典中删除信息时,它说字典不包含任何内容

        internal void remname(Steamworks.CSteamID SteamID)
        {
            if (numberNames.ContainsKey(SteamID))
            {
                numberNames.Remove(SteamID);
            } else
            {
                Console.WriteLine("Doesnt contains");
            }
        }

而且我完全不知道可能导致此问题的原因。

回答

你是如何定义 numberNames 的?如果有 2 个定义,每个类中一个,那么即使它们共享相同的名称,它们也是完全不同的对象。

即使在一个类中有一个定义,除非它是静态的,否则同一类的不同实例将具有不同的对象。


以上是字典在包含它时不会从不同的类返回值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>