委托的简单例子

原创 2007年09月14日 22:53:00

 委托是函数的封装,它代表一“类”函数。他们都符合一定的签名:拥有相同的参数列表、返回值类型。同时委托也可以看作是对函数的抽象,是函数的“类”。此时,委托是实例代表一个具体的函数。

现定义一个书类,其中定义了价格,随着季节的改变可能有不同的折扣,希望可以灵活替换折扣

 

public class Book
    
...{
        
public delegate double GetPrice(Book b);
        
private string name;

        
public string Name
        
...{
            
get ...return name; }
            
set ...{ name = value; }
        }

        
private double price;

        
public double Price
        
...{
            
get ...return price; }
            
set ...{ price = value; }
        }

        
    
    }

    
public class WinterRebate
    
...{
        
public static double Cal(Book b)
        
...{
            
return b.Price * 0.8;
        }

        
    }

    
public class SummerRebate
    
...{
        
public static double Cal(Book b)
        
...{
            
return b.Price * 0.9;
        }

    }

 

 static void Main(string[] args)
        
...{
            Book b 
= new Book();
            b.Price
=100;
            Book.GetPrice g;
            
if (Console.ReadLine() == "win")
            
...{
                g 
= new Book.GetPrice(WinterRebate.Cal);
            }

            
else
            
...{
                g 
= new Book.GetPrice(SummerRebate.Cal);
            }


            Console.WriteLine(g(b));
}

 

 

一个简单的小例子让你明白c#中的委托

模拟主持人发布一个问题,由多个嘉宾来回答这个问题。 分析:从需求中抽出Host (主持人) 类和Guests (嘉宾) 类。 作为问题的发布者,Host不知道问题如何解答。因此它只能发布这...
  • wksnm0724
  • wksnm0724
  • 2011年10月07日 17:26
  • 1241

【C#】C#委托和事件的实例讲解

using System; namespace delegate_event { // 定义一个猫类 class Cat { // 定义一个名字字段 private string na...
  • sinat_20559947
  • sinat_20559947
  • 2015年07月22日 15:33
  • 4024

C#一个简单的委托示列

何谓委托:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更...
  • u012943521
  • u012943521
  • 2016年06月11日 00:50
  • 400

委托的简单例子

委托是函数的封装,它代表一“类”函数。他们都符合一定的签名:拥有相同的参数列表、返回值类型。同时委托也可以看作是对函数的抽象,是函数的“类”。此时,委托是实例代表一个具体的函数。现定义一个书类,其中定...
  • evenbing
  • evenbing
  • 2008年01月24日 16:21
  • 417

C#委托、事件学习之(三)——热水器烧水案例

using System; namespace DelegateExample { public class Heater { private int tempera...
  • lucky51222
  • lucky51222
  • 2015年09月14日 11:17
  • 2457

委托简单例子

看一个简单的例子:      //声明一个委托     delegate int myDelegateHandler(int a, int b);     public class A    ...
  • swarb
  • swarb
  • 2015年01月03日 00:43
  • 459

简单委托例子

例子1:using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication11{ ...
  • sgx0554
  • sgx0554
  • 2010年05月12日 14:07
  • 236

MSDN中回调函数的讲解及其C#例子:用委托实现回调函数

ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconusingcallbackfunctions.htm回调函数是托管应用程序中可帮助非托管 DLL...
  • sizheng0320
  • sizheng0320
  • 2007年05月18日 23:25
  • 3814

简单的Delegate(委托)例子

  今天学习一下好久都不愿意碰的Delegate,虽然不是很明白,还是写了一个小例子(参考园子里的朋友们的),希望加深一下印象.朋友们说它类似于C++的函数指针,指向一个函数,运行的时候可以调用这个函...
  • hpping
  • hpping
  • 2007年10月01日 10:34
  • 301

一个委托的简单例子

    委托和事件相关联,做个小例子,既是作为笔记,也供初学者学习。    首先创建两个窗体Form1和Form2。然后在命名空间下面声明一个委托。 //声明一个委托    public delega...
  • JimFire
  • JimFire
  • 2007年07月24日 20:46
  • 1267
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:委托的简单例子
举报原因:
原因补充:

(最多只允许输入30个字)