• C#总结1


                     C#摘要

     第一章:

    数据类型:

    在定义变量的时候,记下规则,开头不能是数字,变量名只能包括 字母 “_” 数字

        

     整型类型
     名称

     CTS类型

     说明

     范围

     sbyte

     System.SByte

     8位有符号的整数

     -128127(-27到27-1)

     short

     System.Int16

     16位有符号的整数

     -3276832767(-215到215-1)

     int

     System.Int32

     32位有符号的整数

     -21474836482147483647(-231到231-1)

     long

     System.Int64

     64位有符号的整数

     -92233720368547758089223372036854775807(-263到263-1)

     byte

     System.Byte

     8位无符号的整数

     0255(028-1)

     ushort

     System.Uint16

     16位无符号的整数

     065535(0216-1)

     uint

     System.Uint32

     32位无符号的整数

     04294967295(0232-1)

     ulong

     System.Uint64

     64位无符号的整数

     018446744073709551615(0264-1)

     浮点类型
     名称

     CTS类型

     说明

     位数

     范围

     float

     System.Single

     32位单精度浮点数

     7

    ±1.5×10-45到±3.4×1038

     double

     System.Double

     64位双精度浮点数

     15/16

     ±5.0×10-324到±1.7×10308

    decimal类型
     名称

     CTS类型

     说明

     位数

     范围

     decimal

     System.Decimal

     128位高精度十进制数表示法

     28

    ±1.0×10-28到±7.9×1028

     bool类型
     名称

     CTS类型

     值

    bool

     System.Boolean

     truefalse

     char类型
     名称

     CTS类型

     值

    char

     System.Char

     表示一个16位的(unicode)字符

     

    C#里面也有结构类型:可以定义数据类型和方法:
     struct Person

      Public char[10] name;

      Public int age;

      Public output()

      Console.WriteLine(“{0},{1}”,name,age);
    }
    }

    枚举类型:
    enum Weekday

     Monday,Tuesday,Wednesday,Thursday,Friday

    怎么使用:

    Weekday wd1=Weekday.Monday;

    Weekday wd2=Weekday.Tuesday;

    输出wd1的值就是Monday

    Wd2的值就Tuesday

    关于类就是可以理解为特殊的结构类型:类的操作后面再说

    数组类型:

     C#的数组定义和C++不一样:

     一维数组定义:int[] shuzu=new int[10];数组空间大小在后面体现;

    二维数组定义:int[,] shuzu=new int[2,2];2*2数组

    对于数组的初始化:

    Int [] shuzu=new int[]{1,2,3};

    Int[,] shuzu=new int[2,2]{{1,2},{1,2}};

    可以通过shuzu.lenght这个方法来输出数组的长度

    对于类型间的转换:隐式和显示:

    例:int a=100;

    Long b=(long)a;//显式

    Float c=a//隐式

    对于操作符的认识:几种语言都是一样的:

    -减 *乘 /%求余 ==等于 =赋值 

    注意点:

    B=--a//a先减再赋值

    B=a--//a先赋值再减

    ++同上

    对于“?:”这个三元操作符;

    (a)?b:c//a取真就得b,取假就得c

    控制语句:

    If() .......else..

    If().....else if().....else if().......

    Switch语句:

    Switch()

    {

    Case case1:

    Break;

    Case case2:

    Break;

     

    Case case3:

    Break;

     

    Default :

    Break;

    }

    循环语句:

    For  while do...while

    对于for语句都很熟悉

    For(int i=0;i<10;i++)这里强调的是它判断了11次不是10

    对于while do...while的区别据是do....while要比while多执行一次

    C#里多了一个foreach语句;

    用法:int []shuzu=new int[10]{1,2,3,4,5,6,7,8,9,10};

    Foreach(int i in shuzu)

    {

    Console.WriteLine(“{0}”,i);

    }//循环取出集合中的值

     

    对于跳转语句:

    Continue  break    goto   return

    break,continue

                  这两个玩意,太风骚了,都是跳出,但管的范围不一样;

              break常用在switch中,就是直接跳出,哥们我不干了,爱咋咋地,说的就是他;

              continue常用在forwhile循环中,他没break有骨气,只是偶尔的罢工,然后还得回来继续干活,他只是跳出本次循环

              breakswitch中的应用就不解释了,在for里看看:

             forint=0;i<100;i++

             {

                 if(i==10){

                 printf("%d",i);//执行到i=10的时候,因为break这货要罢工,这个循环就停了,只循环了10下就完了

                break;}

             } 

               再来看看continue

             {

                 for(int i=0;i<100;i++)

                   {

                     if(i==10)

                      {

                       continue; //在这当i=10  continue罢工了一次,后面的printf语句不执行了,但是for会从i=11继续循环

                       }

                    printf("%d",i);

     

                   }

             }

    对于goto就是无节操的乱跳,想跳哪跳哪

    例:A:

    Goto A

    至于return这个就是直接结束这个函数的执行
     第二章:

    这章主要是讲类的结构:

    类的成员:成员的类型,可以是第一章讲个各种类型;

    当然也可以是类;

    对于成员的访问权限:四类: privatepublicprotected internal

    对于internal 在定义类的时候,如果没有标注权限,默认就是internal

    对于类,记住两句话:成员属性是对类特征的描述,成员方法是对类行为的描述;

    对于类里面的静态成员和非静态成员:注意对他们的

    例:class Student

    {

      Public static int a=1;

      Public int b;

       Public static void print()

    }

    Public void print1()

    {

    }

          

    对于静态的调用就是

    Student.print();

    Student.a=2;//这个就是把类本身的a的值给换了

    而对于非静态的调用就是先new对象

    Student stu=new Student();

    Stu.print1();

    Stu.b=2;

    记住这个字段,在考题里会问,怎么定义常量字段,在C#里有一个const,这个字段相当于C/C++里的 #define

    还有一个readonly顾名思义就是只读不能改;

    对于方法有几点要注意:

    方法参数:值传递和引用传递。重点记忆;

    值传递都知道,下面看看C#里的引用传递:

    例:

    Void swap(ref int a,ref int b)

    {

      Int c=a;

       A=b;

    B=c;

    }

    main函数调用:

    Main()

    {

       Int a=2,b=3;

    Swap(ref a,ref b);

    }

    上面的例子要好好看看,考试重点;

    对于数组做参数:C#规定 方法里只能有一个数组做参数,必须写在最后一个参数上,还必须是一维的,不能同时作为引用参数或输出参数;

    对于方法的重载:

    1.不能根据返回值来使用重载//注意这个

    2.根据参数类型使用重载

    3.根据参数个数使用重载;

    构造函数和析构函数:

    构造函数是在创建对象时就被调用,不能有返回值;

    析构函数是在创建对象后调用的,目的是打扫后事;

    课本上还有个静态构造函数,这个没用过,但也讲讲,它一生就被用一次,也就是首次使用这个类的时候,第一个创建对象的时候被使用,再对类创建对象的时候就不被调用了;

    Class Student

    {

       //构造函数

       Public Student(){

       Console.WriteLine(“开始”);     

    }

    //静态构造函数

    Public static Student(){

    Console.WriteLine(“我的第一次”);     

     

    }

      //析构函数

    ~Student(){

    Console.WriteLine(“结束”);     

     

    }

    }

     

    Student stu1=new Student();

    //输出:开始

           我的第一次

           结束

    Student stu2=new Student();

    //输出:开始

           结束

    对于类的属性:属性要被封装才可靠;

    get set来索引;

    封装的好处就是,对技术细节进行隐藏//这点要记住

    对于操作符的重载:

    可以看看书P65的例子,可以看下;

    对于this,就是代指本对象,没别的意思;

    当在继承父类时,调用父类属性时用base;就是区别下;

     

     

           

  • 相关阅读:
    C++中的虚函数、重写与多态
    STL中_Rb_tree的探索
    C++11 新用法
    FJUTOJ-3682 LRU算法的实现2 (链表+哈希)
    Windows系统对拍程序
    FOJ-2013 A Short Problem (前缀和)
    HDU-2036 改革春风吹满地 (数学)
    Ubuntu下PostgreSQL的安装和简单操作
    Ubuntu,Linux下goldendict词典安装及配置
    搜狗输入法输入汉字时候选栏乱码
  • 原文地址:https://www.cnblogs.com/wangheblog/p/3147346.html
Copyright © 2020-2023  润新知