C# 最好的重载方法匹配'System.Collections.Generic.Dictionary<;int,ItemTemplate>;。ContainsKey(国际)和#x27;有一些无效的参数

C# 最好的重载方法匹配'System.Collections.Generic.Dictionary<;int,ItemTemplate>;。ContainsKey(国际)和#x27;有一些无效的参数,c#,unity3d,C#,Unity3d,我也遇到了这些错误: 参数#1'无法将string'表达式转换为类型int' 与System.Collections.Generic.Dictionary.this[int]”匹配的最佳重载方法有一些无效参数 参数#1'无法将string'表达式转换为'int'类型 我的代码中有一个简单示例: 公共部分类聊天 { 提交时无效(字符串文本) { var player=Utils.ClientLocalPlayer(); 如果(!玩家) 回来 如果(!player.admin) 回来 如果(!Ut

我也遇到了这些错误: 参数
#1'无法将
string'表达式转换为类型
int'
与
System.Collections.Generic.Dictionary.this[int]”匹配的最佳重载方法有一些无效参数 参数
#1'无法将
string'表达式转换为'int'类型

我的代码中有一个简单示例:

公共部分类聊天
{
提交时无效(字符串文本)
{
var player=Utils.ClientLocalPlayer();
如果(!玩家)
回来
如果(!player.admin)
回来
如果(!Utils.IsNullOrWhiteSpace(文本))
{
if(text.StartsWith(“/give_item”))
{
//用法示例:/give_item playername count itemname
///给阿赫迈特2号黑暗之剑
List parsed=ParseGMCommand(“/give_item”,文本,3);
字符串user=已解析[0];
int count=int.Parse(已解析[1]);
字符串项=已解析[2];
如果(!Utils.IsNullOrWhiteSpace(用户)和&!Utils.IsNullOrWhiteSpace(已解析[1])&&!Utils.IsNullOrWhiteSpace(项目))
{
if(ItemTemplate.dict.ContainsKey(项目))
{
CmdAddToInventory(用户、计数、项目);
}
else打印(“无效项目名称”);
}
else打印(“无效格式:请使用/提供项目”+用户+“/”+计数+“/”+项目);

}
您的
词典
声明如下:

public static Dictionary<int, ItemTemplate> dict;
这就是问题所在。
ContainsKey
函数需要一个
int
,因为该键被声明为
int
,但您正在将
传递给它,它是
字符串
,而不是
int


您有两个选项可以修复此问题:

1。将键设置为
字符串,而不是
int

public static Dictionary<string, ItemTemplate> dict;

代码的哪一部分导致此错误?请将代码示例减少到最低程度,以说明您的问题。此错误:与'System.Collections.Generic.Dictionary.ContainsKey(int)匹配的最佳重载方法'有一些无效的参数//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////if(!Utils.ISORWhitespace user)&&//////ISORWhitespace ISUTILS.ISORWhitespace ISORWhitespace user)&////ISORWhitespace ISUTILS.ISORWhitespace item[1]////NULLUTILS.ISORWITEMS[1]包含NULLUTILS{CmdAddToInventory(user,count,item);}其他打印(“无效的item name”);}要通过gmail与我联系吗?gabbeaudin02@gmail.com我会让你看看我关于unity和visual studio的代码
public static Dictionary<string, ItemTemplate> dict;
string item = parsed[2];
int itemToInt = 0;

//Convert item to int
if (Int32.TryParse(item, out itemToInt))
{
    //Success. Now check the key
    if (ItemTemplate.dict.ContainsKey(itemToInt))
}