У меня есть словари.Сначала я их инициализирую.
public Dictionary<string, Bitmap> lookup;
public Dictionary<string, Bitmap> lookup2;
public Dictionary<string, Bitmap> lookup3;
Затем словари загружаются по событию button_click.
private void button2_Click_1(object sender, EventArgs e)
{
lookup = new Dictionary<string, Bitmap>();
Bitmap l1 = new Bitmap(@"C:\1\1.bmp", true); lookup.Add("1", l1);
// add hundreds more
}
проблема в том, что этот код занимает почти половину моего основного файлового пространства, поэтому я былподумав о создании отдельного файла для загрузки из него словарей.
, поэтому я попытался создать отдельный файл класса (cs):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace getDictData
{
class mydict
{
public static void loadDict()
{
Dictionary<string, Bitmap> lookup = new Dictionary<string, Bitmap>();
Bitmap l1 = new Bitmap(@"C:\1\1.bmp", true); lookup.Add("1", l1);
}
}
}
в основном файле, который я добавляю:
using getDictData
и используйте его так:
private void button2_Click_1(object sender, EventArgs e)
{
mydict.loadDict();
}
похоже, ничего не работает .. так как вы загружаете методы из разных файлов с помощью C #?
РЕДАКТИРОВАТЬ: я использую этот код, чтобы проверить, было ли что-то загружено в словарь:
private void button8_Click(object sender, EventArgs e)
{
var targer = lookup.ToList(); // error is thrown here
string s = targer[0].Key;
textBox6.Text = "" + s;
}
результат всегда нулевой, независимо от того, как я изменяю код.
"Значение не может быть нулевым. Имя параметра: источник"
, и если я удаляю инициализацию словаря из основного файла, я получаю
"Имя 'lookup' не существуетв текущем контексте "