博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
虚函数和接口的应用
阅读量:6923 次
发布时间:2019-06-27

本文共 1692 字,大约阅读时间需要 5 分钟。

本案例主要讲解是虚函数和接口的应用的方法,但是在这里牵扯到很多的知识点,是一个综合性的例题,案例如下:

using System; using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

/// <summary>

///这个是接口的初级应用 ///

 </summary>

namespace Jie_Kou2

 {    

 public delegate  void  Modlfy(string  Sender);  

 //声明一个委托,用来定义事件    

 public interface IBook   

  {        

 string BookName { get; set; } 

//声明接口中的属性     

    void InsertTbData(); //声明接口中的方法    

     event Modlfy Shi_Jian;   //此处声明的为一个事件集合,委托类型Modify

   }  

   public class Book : IBook   

  {       

  //此类继承了IBook接口       

  public event Modlfy Shi_Jian;   //实现他的事件   

      string bookname;    

     public Book(string bn)    //构造函数,实现字段的初始化       

  {          

   bookname = bn; 

        }     

    /// <summary>       

  /// 实现接口中的方法BookName属性    

     /// </summary>

        public string BookName    

     {           

  get { return bookname; }    

         set    

         {     

            bookname = value;           

      this.Shi_Jian(value);  //此处触发接口中的事件,此事件是在给BookName赋值的时候触发的     

        }      

   }       

  public void InsertTbData()     

    {        

     //这个函数就是对接口中的方法实现重新定义   

       }

    }

 

 

 

下面这个实例是对上面类的调用:

  protected void Button1_Click(object sender, EventArgs e)  

   {      

   Book b = new Book("人性的优点");       

  b.Shi_Jian += new Modlfy(b_Shi_Jian);    //此处为事件的添加、但我们把事件定义好的同时、也要注册好事件。有个技巧,但我们敲完+=后,直接双击的按下Tab键,这样vs就能自动的为我们添加好事件,

        b.BookName = "我是小任";  

  //这个是在BookName这个属性赋值的时候触发这个事件,,但要记住的是在他触发以前必须先要注册好这个事件,否则系统会报错。      

   Response.Write(haha(b));        

  }

    void b_Shi_Jian(string Sender)

    {       

  Response.Write("这个是我自己定义的事件"+Sender );  

       //throw new NotImplementedException();

    }   

  private static string haha(IBook ib)    

 {

 //注意到这里,我们给的参数是接口的类型     

    return "<br/>这个是自己定义的函数"+ib.BookName;       

  //这里返回我们接口的属性  

   }

 

 

下面是运行结果:

这个是我自己定义的事件我是小任 这个是自己定义的函数我是小任

 

 

下面我们同时给出几个类型的定义:

接口包含方法、属性、事件、索引等一系列声明。可以让类来实现指定接口,这个类必须为接口中指定的声明来定义代码。结构也可以实现接口。实现方法和类相同。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

转载地址:http://fgzjl.baihongyu.com/

你可能感兴趣的文章
MySQL中concat函数(连接字符串)
查看>>
[版本控制]原来Git分支都是这么用的
查看>>
浏览器兼容的获取event.offsetX的最简单方法
查看>>
JDK动态代理
查看>>
作为面试官,如何考察工程师的软素质
查看>>
怎么制作QQ动态表情包,GIF出处是哪
查看>>
万字长文概述NLP中的深度学习技术
查看>>
当量子计算遇到机器学习
查看>>
关于ScrollView can host only one direct child 问题
查看>>
Android WebView 缓存处理
查看>>
Require的使用 CMD
查看>>
为什么软件定制项目难做?软件外包公司该怎么发展?
查看>>
官方揭秘OpenAI如何打败人类:10个月训练4.5万年
查看>>
一次前端面试经验总结
查看>>
POJ 2479 Maximum sum
查看>>
连线:微软Adobe同仇人忾 谋求配合抗衡苹果
查看>>
python中用os.system+sqlcmd执行sql脚本
查看>>
【PHP cookie | 欢迎效果】
查看>>
PB5.0 features/sysgen参数和ceconfig.h中宏定义的对应关系
查看>>
PHP与MySQL学习笔记8:重要概念与设计Web数据库
查看>>