委托系列02-委托的实例化及执行

一、代码准备

    /// <summary>
    /// 1.无参数无返回值委托
    /// </summary>
    public delegate void NoReturnNoParaOutClass();
    public class CustomDelegate //: MulticastDelegate
    {
        /// <summary>
        /// 2.无参数无返回值委托
        /// </summary>
        public delegate void NoReturnNoPara();

        /// <summary>
        /// 3.有参数无返回值委托
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        public delegate void NoReturnWithPara(int x, int y);

        /// <summary>
        /// 4.无参数有返回值的委托
        /// </summary>
        /// <returns></returns>
        public delegate int WithReturnNoPara();

        /// <summary>
        /// 5.带参数,带返回值的委托
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public delegate int WithReturnWithPara(out int x, ref int y);

        public static void Show()
        {

            NoReturnNoParaOutClass noReturnNoParaOutClass = new NoReturnNoParaOutClass(NoReturnNoParaMehtod);

            //NoReturnNoParaOutClass noReturnNoParaOutClass1 = new NoReturnNoParaOutClass(NoReturnWithParaMehtod);
            //NoReturnNoPara noReturnNoPara = new NoReturnNoPara(NoReturnWithParaMehtod);
            //NoReturnWithPara noReturnWithPara = new NoReturnWithPara(NoReturnNoParaMehtod);
            NoReturnWithPara noReturnWithPara1 = new NoReturnWithPara(NoReturnWithParaMehtod);
            //noReturnWithPara1.Invoke()
            //WithReturnNoPara withReturnNoPara = new WithReturnNoPara(WithReturnNoParaMehtod);



             WithReturnNoPara withReturnNoPara = WithReturnNoParaMehtod; //这样写也没有问题---委托的实例--可以直接指向一个和这个委托参数+返回值完全匹配的方法;--语法糖--编译器给我们提供额便捷功能--new WithReturnNoPara();省略掉了

            int iResult = withReturnNoPara.Invoke();//如果委托定义没有参数;在Inovke也没有参数 
            //withReturnNoPara.BeginInvoke(null, null);//开启一个新的线程去执行委托
            //withReturnNoPara.EndInvoke()//回调


            NoReturnWithPara noReturnWithPara2 = NoReturnWithParaMehtod;
            NoReturnWithPara noReturnWithPara3 = (x, y) => { };
        }

        private static void NoReturnNoParaMehtod()
        {
            Console.WriteLine("这是一个无参数无返回值的方法。。。");
        }

        private static void NoReturnWithParaMehtod(int x, int y)
        {
            Console.WriteLine($"这是一个带参数无返回值的方法。。。");
        }

        private static int WithReturnNoParaMehtod()
        {
            Console.WriteLine($"这是一个无参数带返回值的方法。。。");
            return default(int);
        }

        private static int WithReturnWithParaMehtod(out int x, ref int y)
        {
            Console.WriteLine($"这是一个带参数无返回值的方法。。。");
            x = 1;
            return default(int);
        }
    }

二、委托的实例化

从上图得知,委托实例化是传递的函数,且函数必须与委托声明一致。(返回值、参数)

三、委托的执行

推荐这些文章:

02参数服务器

参数服务器
参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据,关于参数服务器的典型应用场景如下:

导航实现时,会进行路径规划,比如: 全局路径规划,设计一个从出发点到目标点的大致路径。本地路径规划,会根据当前路况生成时时的行进路径

上述场景中,全局路径规划和本地路径规划时,就会使用到参数服务器:

路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服务器,全局路径规划节点与本地路径规划节点都可以从参数服务器中调用这些参数

参数服务器,一般适...

Java 8系列之Stream的基本语法详解02

Stream流是java8中很重要的一项技能:
之前操作java代码, 执行过滤操作:

public class SimpleStream {

public static void main(String[] args) {

List<Dish> menu = Arrays.asList(
new Dish("pork", false, 800, Dish.Type.MEAT),
new Dish("beef", false, 700, Dish.Type.MEAT),
...

委托能在remoting之间传递吗?

问题
<P>public A:MarshalByRefObject</P>
<P>{</P>
<P>&nbsp;</P>
<P>&nbsp;&nbsp; void DoSth(System.Func&lt;string,object,bool&gt; predicate)</P>
<P>{</P>
<P>}&nbsp;</P>
<P>}</P>
...

委托系列05-Action/Func

一、为什么会有Action和Func

二、Action和Func的声明及区别
1、Action
1、普通委托的声明和调用
委托:
/// <summary>
/// 无参数无返回值委托
/// </summary>
public delegate void NoParamNoReturnDelegate();

/// <summary>
/// 有参数无返回值委托
/// </summary>
/// <pa...

回顾方法及加深之方法的修饰符和返回类型(02)

//Demo01类
public class Demo01 {
//Demo01类里面的main()方法 用于启动程序(一个真正的程序中只有一个main方法)
public static void main(String[] args) {
//System.out.println("Hello World !");
new Demo01().sayHello();
System.out.println(new Demo01().sayHello());

Demo01 demo01 = new Demo0...

搜索实现模糊搜索咋执行不了呢?

问题
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>多功能搜索<...

cnblogs 操作 metaweblog api

cnblog不愧是专业的程序员博客,还附带了metaweblog 功能。
这里简单记录一下,说不定以后用得上
metaweblog 是什么?

MetaWeblog API是Blog应用程序对外接口的国际规范标准。
通过MetaWeblog API,blog应用程序可以对外公布blog提供的服务,从而允许外面的程序能取得和设置blog文章的文本或属性。可使用该接口上传博文。

不多说了,操作几个接口试试
在哪看到自己的metaweblog地址
博客设置中,其他设置这里可以看到

点击去即可看到所支持的接口

注意接口是xmlrpc格式的传输方式
调用接口试试
xmlrpc的接口传输
这个是规...

Maven <build>

1. <build>

1.1 <resources>

编译保留 *.propertie s,*.xml

1.2 <plugins>

拷贝config目录
Java 1.8 编译
一般打包(无Spring)
Spring 打包

2. <properties>

编码 编译版本

1. <build>
1.1 <resources>
编译保留 *.propertie s,*.xml
<resource>
<directory>src/main/java</dire...

jQuery-HTML元素

 
设置文本

<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery.min.js"></script>
</head>
<body>

<h1>设置文本内容</h1>

<h2 id="01">Hello China!</h2>
<h2 id="02">Hello World!</h2>

<script>
$(document).ready(funct...

使用类做为Dictionary<T,K>的key需什么要求?

问题
<P>&nbsp;</P>

最佳回答
没有要求

...

文章标题:委托系列02-委托的实例化及执行
文章链接:https://www.dianjilingqu.com/51209.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>