为什么不能实例化委托方法Run?

时间:2017-02-25 16:06:30

标签: c# delegates

我无法理解,为什么我不能在下面的代码中用Run方法实例化代理?

public class Tester
{
    Media myMedia = new Media();
    AudioFile myAu = new AudioFile();
    VideoFile myVd = new VideoFile();
    //instantiate the delegates
    Media.PlayerD MyDA = new Media.PlayerD(myAu.AudioPlay);
    Media.PlayerD MyDV = new Media.PlayerD(myVd.VideoPlay);

    public void Run()
    {
        //call the delegates
        myMedia.Report(MyDA);
        myMedia.Report(MyDV);
    }
}

1 个答案:

答案 0 :(得分:0)

您:

MyDA

非静态字段(上面myAu)的初始值设定项不能使用其他非静态字段(MyDA = new Media.PlayerD(myAu.AudioPlay);)。

如果将MyDV置于非静态构造函数中,则允许这样做。

(当然,{{1}}也一样。)