黑马程序员_委托的使用

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

所谓委托,就是把一个方法的引用作为参数传给另一个方法。因为有时某个方法执行的操作并不是针对数据进行的,而是要对另个方法进行操作。只是委托要比C++中把一个函数的指针作为参数传给另一个函数更加安全,它强制指定了其中作为参数的方法的返回值和参数,提高了类型安全性。

1.声明委托,就是告诉编译器这种委托表示哪种类型的方法。然后,创建该委托的一个或多个实例。

声明委托的语法:

[修饰符] delegate 返回类型 委托名(参数列表);

声明一个委托前,必须确定所要调用的的方法的返回值和参数列表,委托的返回值、参数列表和方法的返回值、参数列表必须相同。

注:如果委托是在名称空间中定义,即不属于任何一个类,则修饰符只能是public或者internal,不写则默认为internal类型。如果属于一个类,则可使用全部类型的修饰符进行控制委托的使用范围。

例:public delegate string myDelegate( int n );

2.实例化委托

myDelegate p;

定义了一个委托对象p

3.调用委托

myDelegate p = new myDelegate(obj.fun1); //此时p为引用类型

或者myDelegate p = obj.fun1; //此时p为值类型

完整例子:

namespace 委托

    delegate double myDelegate(double x,double y);//创建一个委托

    class MyDeClass

    {

        public double add(double x, double y)

        {

            return x + y;

        }

        public double sub(double x, double y)

        {

            return x - y;

        }

        public double mul(double x, double y)

        {

            return x * y;

        }

        public double div(double x, double y)

        {

            return x / y;

        }

    }

}

namespace 委托

{

    class Program

    {

        static void Main(string[] args)

        {

            MyDeClass my = new MyDeClass();

//调用委托,把方法名作为参数传递给委托。

myDelegate myde = new myDelegate(my.add);

//可以写成myDelegate myde = my.add;

            Console.WriteLine("5 + 8 = " + myde(5, 8));

            myde = new myDelegate(my.sub);

            Console.WriteLine("5 - 8 = " + myde(5, 8));

            myde = new myDelegate(my.mul);

            Console.WriteLine("5 * 8 = " + myde(5, 8));

            myde = new myDelegate(my.div);

            Console.WriteLine("5 / 8 = " + myde(5, 8));

            Console.ReadKey();

        }

    }

}

4.委托对象封装多个方法

static void Main(string[] args)

{

    MyDeClass my = new MyDeClass();

//调用委托,把方法名作为参数传递给委托。

  myDelegate p;

    p = my.add;

    p += my.sub;

    p += my.mul;

    p += my.div;

p(5, 8);   //委托对象已经指向这四个方法,执行时会循环调用这这个方法。  

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种编程语言,而"黑马程序员"是一个培训机构。在Python中,可以使用print语句来输出文本。例如,通过运行以下代码:print("零基础,学Python, 月薪过万,就来黑马程序员。"),可以将"零基础,学Python, 月薪过万,就来黑马程序员。"这个文本输出到屏幕上。 除了输出文本,Python还可以定义变量并进行打印,例如:a = 666,b = 3.14,c = "零基础,学Python, 月薪过万,就来黑马程序员。",然后使用print语句打印这些变量。 无论是输出文本还是打印变量,在Python中都可以使用print语句来实现。同时,注释是在代码中用来解释和说明代码的部分,通过注释可以提供对代码的理解和解释。所以,如果你想在Python程序中输出"黑马程序员",你可以使用print语句来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [黑马程序员最新Python教程——第一阶段(1)](https://blog.csdn.net/weixin_46225503/article/details/126850291)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [黑马程序员---Python高级技巧编程](https://blog.csdn.net/qq_45893319/article/details/129965089)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值