我试图使用从第二个帖子引发的自定义事件。以下是代码的相关部分:
delegate void SearchCompleteHandler(Dictionary<string, List<string>> results);
event SearchCompleteHandler SearchComplete;
public static void Search()
{
Dictionary<string, List<string>> result = new Dictionary<string, List<string>>();
SearchComplete?.Invoke(result);
}
SearchComplete = new SearchCompleteHandler(ShowSearchResults);
SearchComplete += new SearchCompleteHandler(ShowSearchResults);
dupeSearchThread = new System.Threading.Thread(Search);
dupeSearchThread.Start();
我在这一行收到错误:
SearchComplete?.Invoke(result);
VS说&#34;这个非静态属性需要一个对象引用&#34; (近似翻译)。
我认为在使用之前为事件添加Handler就足够了。我该怎么办?
答案 0 :(得分:2)
这是因为你引用了一个非静态的对象:你应该从Search方法中删除关键字static,以便在你的类的实例中访问它,从而使它能够访问所有变量和对象都在其中实例化。