c#基本语法学习笔记

 

名词解释:
  1、CLR---------Common Language Runtime ------------公共语言运行环境,管理着代码的执行。
  2、JIT---------Just In Time -----------------------即时编译器。 作用:执行时将中间语言编译成本地代码
  3、MSIL--------MicroSoft Intermediate Language-----微软中间语言。编译时编译器将代码转化为中间语言和元数据。
  4、名字空间----相当与java中的包(package)

1)起源:
   微软internet平台战略,2000-6-22发布.net框架

2)特点:
   1、完全支持xml,与web紧密连接
   2、对象自动回收
   3、跨语言 (来自于他的虚拟对象系统)

3).NET的结构
    1、虚拟对象系统 (VOS) :跨语言集成,程序员可以选择自己喜欢的开发语言,只要他支持.net
    2、元数据---------------:对VOS中类型描叙代码的一种称呼,编译时自动生成,与源代码共同包好在二进制代码文件中
    3、公共语言规范(CLS)
    4、虚拟执行系统(VES):运行的环境             
   
4)HelloWorld
   using System;
   class HelloWorld {
     static void Main () {
      Consol.Write("Hello World!");
      }
   }

  说明:源代码后缀为.cs
 
      
5)数据类型(值类型 简单类型,结构类型,枚举类型):
   1、整型----------sbyte(带s都是有符号的),byte(0到255),short,ushort,int,uint,long,ulong
   2、布尔型--------bool (true,false)
   3、实数----------float,double   C#中专门添加decimal类型,方便在金融和货贝方面的运算
   4、字符----------char  其中有转义字符:\',\''等。 
   5、结构类型------struct Student {
                      public string Name;
                      public float  score;

                     }
   6、枚举类型------enum WeekDay {Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday};
 
6)数据类型(引用类型):----所谓引用类型是:该类型变量不直接存储所包含的值,而是指向该值,也就是存储该引用值的地址。  
   1、类:--------------object类是所有类的基类。
   2、String类----------sting s="hello";
   3、代表(delegate)----a)说明:C#取消了指针的概念,当然也可以用指针,但必须申明为unsafe不安全的。
                        b)定义:delegate int Mydelegate();   ----代表相当于函数指针原型。
                        c)使用:Mydelegate d=new Mydelegate(类.方法)
                                d(); //然后就相当于直接掉函数。
   4、数组--------------a)定义: int[]   arr=new int[5];   // int[] arr=new int[5] {1,2,3,4,5} //
                                int[]   iArr; ---一唯
                                int[,]  iArr;----二唯
                                int[,,] iArr;----三唯


7)装箱和拆箱(boxing--unboxing):用于值类型,引用类型,object对象类型之间的转换。
   1、装箱-------------将一个值类型隐式的转化为一个object类型
                       例子:int i=10;
                             object obj=i;         //隐式
                             object obj=object(i)  //显式

   2、拆箱-------------将一个对象类型转化为一个值类型
                       例子:int i=10;
                             object obj=i;
                             int j=(int)obj;

8)表达式
   1、运算符-----  a:一元运算符 ++,-- // b、二元运算符 +,-,*,/,%(取余)  // c、三元运算符 y=(x>10?1:0)
   2、关系符-----  == (等于)  != (不等于)
   3、as操作符---  将一个值转化为指定的引用类型,如果不能转换则返回null值。
   4、逻辑符号---  &&(并且)  || (或者) !(非)
  
9)流程控制
   1、if判断结构--------if (条件) {} else {};
   2、swith开关结构-----swith (表达式) {
                         case 值1:do something;break;
                         case 值2:do something;break;
                         default:  .....
                         }

                    说明:其中可以不使用break;而使用goto case 值1转向//或者goto default;
   3、For循环结构-------for (int i=0;i<=10;i++) {...}
      while循环  -------while (条件) {...};
      do ...while循环---do {...}  while (条件)

10)异常处理
    1、结构1-------- try {...} catch (Exception e) {...}        //e.message
    2、结构2-------- try {...} finally {...}
    3、结构3---------try {...} catch (Exception e) {...} finally {..}
    4、抛出一个异常:
            a.--- throw new Exception("错误信息");
            b.----e=new Exception ("错误信息");
                  throw;           
                 
11)类:
    1、类的修饰符
       a.public ------不限制访问。
       b.protected----保护类,所在类和其子类可以访问。
       c.internal-----所在类才能访问
       d.private------该包中的应用程序和库才能访问
       e.abstract-----抽象类,不允许建立实例
       f.sealed-------密封类,不允许被继承。 //seal /si:l/密封。。海豹
    2、类的成员
        公共成员,私有成员,保护成员,内部成员。
    3、this保留字
        仅限于在构造函数,类的成员和类的实例中使用。
    4、成员常量
        public const int i=10;
    5、构造函数:
       a、构造函数通常与类名相同。
       b、构造函数不声明返回类型。
       c、构造函数总是public的,如果为private则表示该类不能被实例话。
          例子: class A
                  {
                  public A(int i) {...};   //构造函数
                  }
    6、析构函数
       a、析构函数的名字与类名相同,只是前面有一个波浪~符号。

11)方法:
    1、修饰符:new、public、protected、internal、private、static、virtual、sealed、override、abstract、extern
               说明:对于abstract、extern方法的执行体只有一个分号;也就是只有声明没有实现。
    2、参数
       a、值参数 -------不含任何修饰符号  :传递的是值的拷贝,任何修改不影响原来的参数
       b、引用参数------以 ref为修饰符    :传递的是值的地址,
       c、输出参数------以out为修饰符     :输出参数与ref参数的区别是:调用函数前不需要对该参数初始话
       d、数组参数------以params为修饰    :
           说明1:数组参数必须位于参数表的最后
           说明2:参数只允许是一唯数组
           说明3:数组参数不再有ref,out修饰符     
    3、方法的重载-------类中有同名的方法,但是参数必须不同。   
    4、操作符的重载-----

12)域和属性
    1、域:就是成员变量。 修饰:public、protected、internal、private 。。。static静态域.
       只读域:public static readonly double pi=3.1415926
    2、属性:声明---attributes  修饰符  类型 名称
       属性的读:get  写  set


13)事件和索引指示器

原文地址:https://www.cnblogs.com/engine1984/p/865359.html