‫好吧, 我会的
‫那么, 什么是委托？
‫简单地说, 委托是一种类型, 它可以保存对方法的引用｡
‫当您呼叫委派时, 会呼叫指涉的方法｡
‫假设我们正在开发一个UI库, 其他开发人员可以使用它来构建移动的应用程序,
‫而其他开发人员可以使用的UI元素之一是按钮｡
‫如果我们看一下用来在屏幕上创建绿色按钮的button类后面的代码,
‫像这样的按钮将具有以下属性：一个名为text的字符串, 其中包含发送的值;一个名为backcolor的颜色, 它是一种绿色的颜色;当然还有两个属性,
‫分别是size W和size H, 用于表示按钮的宽度和高度｡
‫现在, 这里缺少的是一个方法, 其中包含单击按钮后需要执行的代码｡
‫现在我们有麻烦了｡
‫作为开发这个UI系统的开发人员, 我们无法告诉使用我们UI系统的其他开发人员希望按钮在被点击时做什么｡
‫这就是为什么我们需要提供on click事件作为委托而不是作为普通方法｡
‫由于委托是一个变量, 可以存储对方法的引用, 正如我们前面所听到的,
‫其他开发人员可以在一个方法中编写他们自己的实现, 该方法包含他们希望在单击时执行的逻辑, 并将其分配给按钮on
‫click委托斜杠事件｡
‫我们提供它我们自己的点击委托可以这样定义｡
‫现在让我们一点一点地把它分解｡
‫我们将从写入指定给这个private关键字的访问开始, 后面跟有delegate关键字,
‫它告诉编译器我们正在定义一个新类型｡
‫最后, 我们需要指定委托可以存储的方法的类型｡
‫我所说的类型是指返回类型和Click Delegate上的参数是我们刚刚定义的委托的名称｡
‫现在, 下一步是实际创建一个新委托类型的变量｡
‫所以我们定义它就像定义升C调中的变量一样｡
‫首先是public, 然后是我们要创建的变量的类型, 在单击delegate时是on的｡
‫最后是单击的变量名｡
‫因此, 我们再次定义了一个Click Delegate类型的公共变量, 并将其命名为Click｡
‫此变量可以保存或存储对任何方法的引用, 只要它的返回类型为void并且不带参数｡
‫否则, 我们会得到一个类似于在in变量中存储浮点数的错误｡
‫那么, 我们如何使用这个新的委托呢？
‫好吧, 假设我们将放置的按钮拖动到画布中, 该画布位于我们正在使用UI系统开发此移动的应用程序的ID中,
‫从而创建了按钮对象｡
‫让我们假设这个按钮的名称是发送按钮｡
‫因此, 让我们首先添加在单击按钮时要执行的逻辑｡
‫在我们的示例中, 我们希望连接到网络, 发送消息, 然后向用户显示消息｡
‫因此, 现在我们有一个名为Send Button Click的普通方法, 它还没有以任何方式连接到按钮｡
‫要解决这个问题, 我们需要将我们的方法赋给类型为on Click Delegate的on click变量｡
‫请注意, 我们在编写方法名时没有使用括号, 因为我们不是在调用它,
‫而是将其引用存储在正确的委托中｡
‫现在, 如果鼠标悬停在按钮上并单击鼠标, 我们的UI系统将调用发送按钮的单击委托,
‫作为回报, 该委托将调用分配给它的任何方法｡
‫在这种情况下, 它将调用发送按钮单击, 并将显示消息发送对话框｡
‫这样, 无论谁使用我们的UI系统, 都可以创建他们自己的方法, 然后将他们的方法分配给我们的委托,
‫我们可以在条件合适的时候调用他们｡
‫我们并不局限于点击事件｡
‫例如, 我们甚至可以为应用程序的启动或关闭创建委托｡
‫这是一个非常抽象的例子, 但这是一个关于一般委托的真实的用例｡
‫接下来, 我们将学习如何使用C调中已经存在的一个代理｡
‫之后, 我们将开始创建自己的委托, 类似于本例中的做法｡
‫下一段视频再见｡