C# 字典没有';t在包含值时从不同的类返回值
我试图保存关于用户SteamID和他在游戏中的位置的信息,下面是我每0.5秒将此人传送到保存位置的代码,它在控制台中完美地返回此信息 键:76561198333850828,值:(605.0,41.8618.5)C# 字典没有';t在包含值时从不同的类返回值,c#,dictionary,C#,Dictionary,我试图保存关于用户SteamID和他在游戏中的位置的信息,下面是我每0.5秒将此人传送到保存位置的代码,它在控制台中完美地返回此信息 键:76561198333850828,值:(605.0,41.8618.5) 我完全不知道是什么导致了这个问题。你是如何定义numberNames的? 如果有两个定义,每个类一个,那么它们是完全不同的对象,即使它们共享相同的名称 即使一个类中有一个定义,除非它是静态的,否则同一个类的不同实例将有不同的对象。我在您看到第一个代码块的类中定义了它,我将进行编辑,以便
我完全不知道是什么导致了这个问题。你是如何定义numberNames的? 如果有两个定义,每个类一个,那么它们是完全不同的对象,即使它们共享相同的名称
即使一个类中有一个定义,除非它是静态的,否则同一个类的不同实例将有不同的对象。我在您看到第一个代码块的类中定义了它,我将进行编辑,以便您看到字典定义,对此表示歉意。您是对的,谢谢!第一个类和具有
remname()
方法的类之间的关系是什么?您能告诉我们您在哪里调用remname()
?
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");
}
}