码迷,mamicode.com
首页 > Windows程序 > 详细

C#入门经典(读书笔记<二>)

时间:2018-02-07 14:36:40      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:ret   完成   dash   pos   lock   auto   返回   abs   str   

一、抽象类与接口

  (1)抽象类:

    1、类中的方法不提供具体实现,但该类的派生类必须实现这些方法,这些方法在C#中称为抽象方法。

      2、 抽象方法必须是一个没有被实现的空方法。包含抽象方法的类称为抽象类,抽象类中也可以包含非抽象方法。 因为抽象类是用来作为基类的,所以不能直接被外部程序实例化,而且也不能被密封。

      3、通过关键字abstract进行标记将类声明为抽象。 不能创建抽象类的对象,但可以创建抽象类的引用。 一个abstract类可以不包含抽象方法,可以包含非抽象方法和变量。 抽象方法是虚方法的特例。 构造函数和静态方法不能是抽象的。 一个非abstract类不能包含抽象方法。 子类若要覆盖抽象类的抽象方法时,要使用override关键字。 

  (2)接口:  

    接口成员访问权限为public,但不能加访问修饰符, 接口成员不能有定义。 接口的成员必须是方法,属性,事件或索引器,不能包含常数、字段、运算符、实例构造函数、析构函数或类型。

    接口和类的对比:

技术分享图片

 

二、is与as运算符

  is运算符:可以检查对象与类之间的关系,形式为:if ( obj is classname )…… ,可用于确定接口是否可用。

  as运算符:完成的功能等价于:先用is检查,再执行对象类型转换。 如果类型不兼容,as运算返回null。

三、委托与事件(还是不太明白!!!)

  (1)委托:是一种可以指向方法的引用,可以理解为一种函数指针,是类型安全的。它类似于C++中的函数指针,通过对于方法特征和返回值类型的声明,封装了具有相同特征和返回类型的方法。

    使用委托需要三个步骤: 声明委托类型 ==》创建委托实例 ==》 向委托实例注册方法。

技术分享图片
 1 class Delegates
 2 {
 3     // 委托定义
 4     public delegate int Call(int n1, int n2);    
 5     class Math
 6     {
 7         // 乘法方法
 8         public int Multiply(int n1, int n2)
 9         {
10             return n1*n2;
11         }
12     
13         // 除法方法
14         public int Divide(int n1, int n2)
15         {      
16         if(n2!=0)
17             return n1/n2;
18        else{
19                 Console.WriteLine("除数不能为零!");
20                 return -999999999;
21             }
22          }
23     }
24         
25         static void Main(string[] args)
26         {
27         // 委托的对象
28         Call objCall;
29         // Math 类的对象
30         Math objMath = new Math();
31         // 将方法与委托关联起来
32         objCall = new Call(objMath.Multiply);
33         // 将委托实例化
34         int result = objCall(4, 3);
35         System.Console.WriteLine("结果为 {0}", result);
36         }
37 }        
View Code

 

  (2)事件:语法——[访问修饰符] event 委托名 事件名; 

C#入门经典(读书笔记<二>)

标签:ret   完成   dash   pos   lock   auto   返回   abs   str   

原文地址:https://www.cnblogs.com/blue-lotus/p/8425962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!