委托的简单例子

原创 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不知道问题如何解答。因此它只能发布这...

C# 委托事件简单的使用例子

  • 2012年06月04日 12:58
  • 33KB
  • 下载

委托实现C#观察者模式简单例子

  • 2014年07月27日 12:04
  • 26KB
  • 下载

章鱼哥出品_VB.NET 线程委托应用实例 一个简单的例子让你轻松掌握委托的用法

网上有很多关于线程和委托的问题,大家

委托与事件的简单例子

  • 2011年08月29日 15:45
  • 40KB
  • 下载

委托的异步回调简单例子

  • 2012年07月24日 20:16
  • 24KB
  • 下载

Java NIO 简单例子

服务器端: package nioT; import java.io.IOException; import java.net.InetSocketAddress; import java.nio...

C#中委托的例子(简单)

  • 2011年12月21日 14:12
  • 32KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:委托的简单例子
举报原因:
原因补充:

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