我无法理解,为什么我不能在下面的代码中用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);
}
}
答案 0 :(得分:0)
您:
MyDA
非静态字段(上面myAu
)的初始值设定项不能使用其他非静态字段(MyDA = new Media.PlayerD(myAu.AudioPlay);
)。
如果将MyDV
置于非静态构造函数中,则允许这样做。
(当然,{{1}}也一样。)