我正在尝试Action<T,T>
委托并收到以下错误:
非静态字段,方法或者需要对象引用 属性
事件声明如下:
public event Action<string, string> FileStateProcess;
用法应如下所示:
if (FileStateProcess != null)
{
FileStateProcess(file.FullName, temppath);
}
我做错了什么?
答案 0 :(得分:2)
从你的声明我们可以看到FileStateProcess
动作是非静态的,所以我假设你调用它的方法是静态方法。在这种情况下,请从方法中删除static
关键字,您应该做得很好。
或者,您可以使FileStateProcess
为静态,但这意味着它的值将保留在实际类型中,而不是在对象实例中。
public static event Action<string, string> FileStateProcess;
有关详细信息,请参阅:
Static Classes and Static Class Members (C# Programming Guide).