我正在创建一个字典,然后用main()中的条目填充它,然后调用一个使用所述字典的方法。如果在传递给此方法的参数中包含字典,如何在不收到错误的情况下访问它?非静态字段,方法或属性'XXX.YYY.dict'需要对象引用?
编辑:这是请求的代码:
public static void Main()
{
ulong board = AS | KH | FD | FC | TH | SH | NC;
Dictionary<ulong, int> dict; dict = new Dictionary<ulong, int>();
for (int a = 0; a < 49344; a++)
{
dict.Add(helloworld.Table.handhashes[a], helloworld.Table.ratings[a]);
}
int hand = 0;
for (int ai1 = 0; ai1 < 100000000; ai1++)
{
hand = FCheck(board);
}
}
在FCheck中发生错误,紧跟在以下行:
FCheck = dict(condensedBoard);
答案 0 :(得分:3)
使其成为您的Program类的静态成员。你没有显示任何代码,但听起来你有一个控制台应用程序,所以它会像这样工作:
class Program
{
static Dictionary<string, string> _myDict;
static void Main(string[] args)
{
// Fill it here
}
void MyFunc()
{
// Access it here
}
}
答案 1 :(得分:2)
你可以使字典成为一个静态变量,主要只是填充,但是将变量传递给需要它们的类更好
答案 2 :(得分:1)
让它全球化吗?
static Dictionary<X, X> Entries;
public static void main(string[] args)
{
// populate and then call dostuff
}
public static X dostuff(a)
{
return Entries[a];
}
答案 3 :(得分:1)
您可以将字典设为课程中的静态字段。但是应该谨慎使用静态字段,因此将其作为参数传递可能是更好的解决方案。特别是如果你的应用程序会随着时间的推移而变大。