• 虚函数和接口的应用


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

    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;       

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

       }

    下面是运行结果:

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

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

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

    }

  • 相关阅读:
    Vue Tinymce 在 Dialog 中不更新视图问题
    vue3再setup中动态加载组件
    ElementUI全局修改 eldialog 默认点击遮照为不关闭
    vue 数组 变化 ui未响应
    elementui 全局设置弹窗不点击遮罩层自动关闭
    Edge启动页 被串改无法设置
    SpringCloud学习笔记一
    分布式RPC框架Apache Dubbo
    SpringCloud学习笔记二
    springboot配置mybatisplus数据库加密启动报错
  • 原文地址:https://www.cnblogs.com/zhijianliutang/p/2250712.html
Copyright © 2020-2023  润新知