卡住试图理解代表

实用程序员

book是一个对象,Namechanged是委托类型的字段,OnNameChange是委托可以指向的方法; OnNameChange只需写入控制台窗口

使用此代码:

        book.NameChanged = OnNameChange;
        book.NameChanged += OnNameChange;

屏幕上将显示两个实例。

但是使用此代码:

        book.NameChanged += OnNameChange;
        book.NameChanged = OnNameChange;

只有一个实例打印到屏幕上,其行为与以下代码相同:

        book.NameChanged = OnNameChange;
        book.NameChanged = OnNameChange;

有人请向我介绍C#中的委托基础。我仍然是一个初学者,当我尝试破坏并逐步进入代码本身时会迷路。我对自己的行为进行解释的无力尝试是,如果您启动一个多播委托,则后续的强制类型转换也应该是多播的。

任何帮助我理解概念的输出都非常感谢:D

科比

假设你有

const int oneBook = 1;
int bookCounter = 0;

您的第一个代码块等效于:

// bookCounter == 0
bookCounter = oneBook;
// bookCounter == 1
bookCounter += oneBook;
// bookCounter == 2

您的第二个代码块等效于:

// bookCounter == 0
bookCounter += oneBook;
// bookCounter == 1
bookCounter = oneBook;
// bookCounter == 1

代表的行为非常相似,但是代表执行代码而不是递增数字的函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章