C#学习笔记

来源:互联网 发布:拓维信息怎么样 知乎 编辑:程序博客网 时间:2024/05/02 02:17
C#学习笔记(一):数据类型 
C#数据类型分为两大类:数值类型和引用类型;
    一、数值类型包括:整型、字符型、布尔型、浮点类型、小数类型、结构、枚举
        1、整数类型:byte、sbyte、short、ushort、int、uint、long、ulong,常用的是int;
        2、浮点类型:float、double;
        3、小数类型:dicemal;
        4、字符类型:char;
        5、布尔类型:bool;
    二、引用类型包括:字符串、数组、对象类型、类、接口、代理
        1、对象类型:object;
        2、字符串类型:string;
    三、赋初值
    四、类型转换:隐式转换、显式转换;打包转换、拆包转换
        1、隐式转换:低级数据类型向高级数据类型转换,结果为高级数据类型;
        2、显式转换:造型(CAST)
        3、打包转换和拆包转换:堆(Heap)和栈(Stack)的区别;
    五、简单数值类
        1、两个域:MaxValue和MinValue;

C#学习笔记(二):运算符和表达式 
1、算术运算符
    1)++、--在变量左右的区别
    2)负号运算符:例如-3+-3等同于-3-3
2、逻辑运算符
3、关系运算符
4、其他运算符
    1)is运算符:x is int
    2)?:运算符:
    3)as运算符:
            object x = 5.4F;
            object y;
            y = x as float;
    4)typeof运算符:
5、checked和unchecked 

C#学习笔记(三):选择和循环结构 
1、if语句
    1)if(...) 
    2)if(...) else
    3)if(...)
          else if(...)
          else if(...)
          else
    注意嵌套的判断语句,从最内层开始,else总是和他最上面并且没有配对的if语句配对
2、switch语句
    switch(...)
    {
       case ... :
       case ...:
       ...
       default:
    }
3、while语句
    while(...)
     {
        ....
      }
4、do-while语句
      do
        {
         ...
         }
      while(...)
5、for语句
     for(...;...;...)
       {
        ...
        }
6、foreach-in语句
     foreach( ... in ....)
       {
        .....
        }

C#学习笔记(四):数组 
1、一维数组
    1) int[] intArray = new int[10];
    2) int[] intArray;
        intArray = new int[10];
    3) int[] intArray = new int[10]{1,2,3,4,5,6,7,8,9,0};
    注意:不允许初始化部分元素,必须全部初始化
2、多维数组
    1) int[,] intArray = new int[3,2];
    2) int[,] intArray;
        intArray = new int[3,2];
    3) int[,] intArray = new int[3,2]{{0,1},{1,2},{2,3}}
3、嵌套数组
        int[][] intArray = new int[2][];
        intArray[0] = new int[2];
        intArray[1] = new int[3];
4、System.Array类
    1、属性
        Length
        Rank
    2、方法
        Sort         Reverse
        IndexOf   LastIndexOf

C#学习笔记(五):面向对象和类 
面向对象
    1、数据封装
    2、代码重用
    3、多态性
    4、重载
命名空间
    using [alias=]namespace;
声明自己的类
    1、封装数据
        private int count;
        ... ...
    2、构造和析构
        构造:public 类名(...) {...},可存在多个
        ~类名:析构,一般不需要
    3、方法
使用自己的类

    静态域:public static int field1;
    只读域:public readonly int field1;
属性
    修饰符 类型 标识符 {代码}
    private string name;
    public string Name
        {
            get{rerurn name;}
            set{name = value;}
        }
索引
    修饰符 类型 this[索引值]
    private int[] Array = new int[5];
    public int this[int index]
        {
            get   
                {
                    rerurn Array[index];
                }
            set
                {
                    Array[index] = value;
                }
        }
重载
    关键是参数不一样
    params:后面不能再有其他参数,因此一般是最后一个参数
    ref、out:实参前也必须加ref、out关键字,ref于out的区别在于out关键字不需要实参必须提前初始化
运算符重载
    语法:public static 返回类型 operator 运算符(参数){代码}
    数据转换也可重载
    语法:public static implicit operator 转换后的类型(被转换的数值)
                public static explicit operator 转换后的类型(被转换的数值) 

C#学习笔记(六):继承 
继承的初步
    1、派生:
            被继承的类叫基类、父类,继承而来的类叫派生类、子类
            class 子类名称 : 父类名称
                {
                .....
                }
            子类可以重载父类的方法,注意行参的不同
            在子类中构造新对象时,不仅要调用子类的构造器,还要调用父类的构造器,并且,这些被调用的构造器必须具有相应的参数列表
    2、base关键字
            子类可以利用父类的各种成员,但是子类只能利用父类中被声明为public和protected的成员
            base关键字是为了在子类中替代父类的名称
    3、禁止继承
            封闭类的概念:sealed
            sealed关键字不仅可以用来声明类,还可以用来声明“封闭”的方法和属性
    4、保护访问
            protected关键字:只在类的继承树链上可见
    5、内部访问
            internal关键字:在一个assembly内部可见
    6、成员访问级别
            private:私有成员只能在声明成员的类中使用
            protected internal:成员只能在同一个类及其子类中被使用,并且所有在类必须在一个assembly中
            internal:在一个assembly中访问
            protected:只能在类继承树链上被访问
            public:不受限制
多态性和虚成员
    1、在父类中利用virtual关键字来声明虚成员,虚成员可以是类的方法、属性和索引,不可以是域或者私有成员变量
    2、在子类中用override关键字来重新声明虚成员
抽象类
    1、abstract关键字
    2、抽象方法不可以为其实例化任何代码,在方法声明时,不可以在方法后使用{};
    3、抽象属性需要指出属性的get或者set部分,但是不能实例化任何代码;
造型
        只允许用父类造型子类 

C#学习笔记(七):接口和代理 
接口
    1、接口的声明
        1)语法:[修饰符] interface 接口名称[:父接口名称]{代码};
        2)要点:
                a、声明接口成员的时候,不可以为接口成员指明任何访问修饰符;
                b、不可以为成员实例化任何代码
    2、接口的使用
        1)使用一个接口只有通过类的继承来实现
        2)子类不仅可以从父类继承,还可以从接口继承
        3)当一个类从接口继承之后,必须在子类中实例化父接口中的所有成员
    3、接口与抽象类的比较
        1)在接口中,不能声明域或者私有变量
        2)声明接口成员时,不能使用任何访问修饰符
        3)接口一旦被继承,则在子类中必须实例化所有成员,而抽象类则可以根据需要重载部分成员
        4)接口允许多重继承
        5)接口相对抽象类具有更高的抽象层次
    4、System命名空间的常用接口
        1)ICloneable:Clone方法
        2)IComparable:CompareTo方法
        3)IConvertable:
        4)IFormatable:Format方法
代理
    1、代理的声明
        [修饰符]delegate 返回类型 代理名称(参数列表);
    2、代理的使用
        使用new运算符创建一个代理对象,同时为代理对象指明引用的方法名称
    3、System.Delegate类
        Method和Target属性
    4、事件
        修饰符 event 类型 标识符
        修饰符 event 类型 标识符{get{};set{};}
        声明和使用一个事件需要如下步骤:
        1)创建一个代理或者使用系统代理:EventHandler
        2)在类的内部利用event关键字声明事件,并在类中定义调用事件的方法
        3)声明多个方法与事件关联 

C#学习笔记(八):结构和枚举 
结构
    1、结构的声明
        [修饰符]struct 结构名称[:接口名称]{代码};
        在结构中不允许存在没有参数的构造体
    2、结构的使用
        1)Point p1 = new Point(1,1);
        2)Point p1;
    3、结构和类的区别
        1)结构不允许继承
        2)结构中不允许声明一个没有参数的构造体
        3)在结构中不允许为一个实例化的域赋初值
        4)利用结构类型来声明对象的时候可以不使用new运算符
        5)结构是一种数值类型,而类是一种引用类型
枚举
    1、枚举的声明
        [修饰符]enum 名称[:各类整数类型]{列表};
        例子:public enum test:ulong {Main=1,Max=2};
    2、枚举的使用
        从枚举类型的数值向整数类型数值转换需要使用显式类型转换
    3、System.Enum类
        1)Format方法
        2)FromString方法
        3)GetName方法和GetNames方法
        4)GetUnderlying方法
        5)GetValus方法
        6)IsDefined方法
        7)ToObject方法
原创粉丝点击