c#学习笔记整理2

来源:互联网 发布:mac os x 10.11 优化 编辑:程序博客网 时间:2024/04/28 22:18

C#学习笔记整理2

ü 继承:classB:classA->B继承A(派生类不能删除它所继承的任何成员),派生类可以访问父类的成员(除private),所有的类都继承于object

ü 隐藏父类成员:在子类中保留一个与父类相同类型和名称的成员

ü 访问隐藏的父类成员:在子类方法中使用base.fatherfile

ü 派生类的引用指向整个类对象,包括基类部分,使用类型转化可以使派生类转化为基类(new1a=new new1(),old1=(old1)a )

ü 虚方法(virtual)和覆写方法(override):使得基类引用可以访问派生类方法;1,派生类方法和基类方法有相同的返回值和签名2,使用virtual和override

如:public classa{

                   virtual publicvoid play(){

System.Console.Write(“a”);

……………….

Public classb:a{

         Override public void play(){

               System.Console.Write(“b”);

              ……………………

main->bhah=new b();a hello=(a)b;->a.paly()->”b”

ü 覆盖其他成员类型:子类和父类成员类型名称相同,值不同new1a=new new1(),old1=(old1)a;a.file1->子类的值

ü 子类构造函数指定父类的构造函数(当父类构造函数被重载时);子类构造函数:publica():base(参数列表)->指定参数列表(int a,String b)

ü 程序集间的继承:基类必须被声明为public,vs工程中必须包含该基类程序集的引用

ü 抽象类,抽象方法类似于java

ü 密封类:只能作为独立的类,不能被继承,使用关键字sealed

ü 静态类:(用途)包含一组数学方法和值的数学裤,类本身是静态的,所有成员必须是静态的,不能创建实例,不能继承

ü 字面量:整数字面量:236(整形)236L(长整型)236U(无符号整型)236UL(无符号长整型);实数字面量:F(f)->float,D(d)->double,M(m)->decimal,无->double;字符,字符串字面量:char,string,\n,\r(回车);c#中的数字不具有bool的意义(True,False)

ü 运算符:逻辑运算符(&&,||,!),位运算(&,|,^,~),移位运算符(>>,<<),赋值运算符(+=,*=,>>=,&=,|=……….),条件运算符(a>b?1:0),typeof(System.Type)->参数可以是任何已知的系统类型

ü goto语句:在方法内无条件的跳转至goto之后的地方,如(goto a;……..a:System.Console.Write(“haha”);)

ü using:使用资源,例如using(TextWriter tw=File.CreateText(“a.txt”)){…}

ü 给using起别名:using sc=System.Console;

ü 异常处理机制:(1)try{……..}catch{……}->(通用)catch只能带一个(2)try{…….}catch(ExceptionType){……}->特定catch可以带多个(3)try{…..}catch(EXceptionTypee){….}->特定catch可以带多个

ü finally{….}做最后的处理,一般来说是释放资源。

ü C#中例举的一些异常:ArgumentException(参数错误),ArgumentNullException(参数为空错误),ArrayTypeMismatchException(数组类型不匹配)……

异常例子:static void main(String []args){
            try{
                try{
                    int a = 0;
                    if(a==0){
                        ArgumentNullException e = new ArgumentNullException("O MY GOD");
                        throw e;
                    }
                }
                catch(ArgumentNullException e){
                    System.Console.Write(e.Message);
                    throw;
                }
            }catch{
                System.Console.Write("haha");
            }finally{
                System.Console.Write("finally");
            }
        }

ü C#值类型和引用类型:值类型(结构体,枚举,可空类型),引用类型(数组,类,接口,委托,object,字符串);不管是值类型还是引用类型都存储在托管堆上,引用类型在栈上存在一个引用

ü  结构体:

struct sample{
    public int a;
    public int b;
    public sample(int c,int d){
        a = c;b = d;
    }
}

main->sample a=new sample(5,10);当然也可以直接->sample s;s.a=1;s.b=9;.

ü 枚举类型:

ü  enum color{
    red,green,black
}

main()

    color a = color.red;
    color b = color.black;
    System.Console.Writeln("{0},{1}", a, (int)a);//a==a.ToString()
    System.Console.Write("{0},{1}",b,(int)b);

output:red,1         black,2

ü 枚举延伸:enumcolor:int{

                  red=21,green,black=8//green=22(会往下自增)

}

main()

if(color.red<color.balck){Console.Write(“True”)}àFalse(同一类型之间可以相互比较)