我不能下调,为什么我不得在代码bellow中实例化委托 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);
}
}
你:
Media.PlayerD MyDA = new Media.PlayerD(myAu.AudioPlay);
非静态字段的初始化器(上面的MyDA
)不能使用另一个非静态字段(myAu
)。
如果将MyDA = new Media.PlayerD(myAu.AudioPlay);
放入非静态构造器中,则可以允许。
(当然,MyDV
也是如此。)