public static Dictionary<uint, Items.GroundItem> ItemFilter(Client C, Dictionary<uint, Items.GroundItem> oggettiInteri)
{
Dictionary<uint, string> Filtr = new Dictionary<uint, string>();
Dictionary<uint, Items.GroundItem> Rientro = new Dictionary<uint, Items.GroundItem>();
if (C.Looting)
Filtr = Program.RareItem; //Program doesnt contain defenition for Rare item
else if (C.LootMoney)
{
Filtr.Add(1090020, "Money");
Filtr.Add(1091000, "Money");
Filtr.Add(1091010, "Money");
Filtr.Add(1091020, "Money");
}
}
答案 0 :(得分:2)
您的初始错误是因为此行不完整。
Filtr = Program.;
看起来你没有写完那条线,否则你不小心删掉了那里的一些代码。
新错误是因为您定义的类程序不包含RareItem
的任何定义,否则您无法访问它。
您需要定义查找类Program的定义,添加一个RareItem属性,并在某处将其设置为某个值:
class Program
{
public static Item RareItem { get; }
static void Main()
{
RareItem = new Item(); // TODO: Finish this.
}
...
}
顺便说一句,公共静态全局数据通常不是一个好主意。您可能想尝试找到不同的设计。
我还建议使用花括号和一致的缩进来更清楚地说明发生了什么:
if (C.Looting)
{
Filtr = Program.RareItem;
}
while (C.LootMoney)
{
Filtr.Add(1090020, "Money");
Filtr.Add(1091000, "Money");
Filtr.Add(1091010, "Money");
Filtr.Add(1091020, "Money");
}
注意while
循环不会给你一个无限循环。
答案 1 :(得分:1)
Filtr = Program.;
这是错的,你需要点后面的东西。
答案 2 :(得分:0)
您的转让声明不完整。
if(C.Looting)
{
Filtr = Program. // incomplete
}
在Program类中,如果你已经定义了另一个Dictionary类型的静态变量,那么就说LocalFilter;然后你可以将它分配给Filtr;
if(C.Looting)
{
Filtr = Program.LocalFilter;
}