当我尝试在C#中使用Delegate的方法属性时,我收到此错误。
' myDelegate'不包含'方法'的定义和不 扩展方法'方法'接受第一个类型的参数 ' myDelegate'可以找到(你是否错过了使用指令或 装配参考?)
我真的不知道为什么会得到这个。我的程序非常简单,基于代表。下面给出了代码:
public delegate void myDelegate(int x);
public class Program
{
public void Main(string[] args)
{
X x = new X();
myDelegate d = x.InstanceProgress;
Console.WriteLine(d.Method);
}
}
class X
{
public void InstanceProgress(int percent) => Console.WriteLine(percent);
}
我在这一行上收到错误:
Console.WriteLine(d.Method);
见下图,虽然我得到了正确的输出,但我得到了错误。 我在图像上用绿色箭头标记了错误。
答案 0 :(得分:1)
看看OP的截图。这看起来像Visual Studio错误。因为它可以让你构建它不是一个真正的错误。我在VS2015中没有收到该错误。
我清理解决方案并重新启动visual studio。那应该清除它。
<强>旧强>
你会想做这样的事情:
X x = new X();
myDeligate d = x.InstanceProgress;
d.Invoke(5);
// or as Rahul pointed out you can simply use
d(5);
Invoke()实际上是调用该方法的。在此之前,委托只是指向您要调用的方法的指针。