.NET学习笔记(一)————认识.NET平台与C#

1、.NET平台的构造块(CLR、CTS、CLS)及C#介绍

        (1)CLR(Common Language Runtime),公共语言运行库
        (2)CTS(Common Type System),公共类型系统
        (3)CLS(Common Language Specification),公共语言规范
        (4)BCL,基础类库
        (5)C#优点(一部分)
             不需要指针;
             垃圾收集器能否自动管理内存;
             类、接口、结构、枚举和委托都有正式的语法结构;
             可以简单的重载操作符为自定义类型;
             支持基于特性的编程;
             构建泛型类型和泛型成员的能力;
             支持匿名方法,它允许我们在任何需要委托类型的地方提供内联函数;
             使用partial关键字跨多个代码文件定义单个类型的能力;
             支持强类型的查询,可用于和各种形式的数据进行交互;
             支持匿名类型,它允许我们构建一个类型的形而不是行为;
             使用扩展方法扩展既有类型(没有子类的类型)功能的能力;
             包含了Lambda操作符(=>),它可以进一步简化.NET委托类型的使用;
             新的对象初始化语法,它允许我们在创建对象是设置属性的值;
             支持可选的方法参数和命名的方法参数;
             支持通过dynamic关键字在运行时动态查询成员;
             泛型类型的操作将更加直观,因为可以使用协变和逆变,轻易的在泛型数据和普通的System.Object集合之间进行相互映射。
        (6)托管代码与非托管代码:
             必须在.NET运行库下执行的代码称为托管代码,反之不能直接在.NET运行库承载的代码称为非托管代码。

2、支持.NET的编程语言

        5中托管语言   :  C# 、 Visual Basic 、C++/CLI、JavaScript、F#。

3、.NET程序集(*.exe)概述

       1、程序集所包含内容:
        (1)IL(Intermediate Language):中间语言。即CIL(公共中间语言),是一种与平台无关的的语言;
        (2)程序集清单:(描述程序集本身的元数据)清单记录了所有确保现有程序集正常工作的外部程序集、程序集的版本号、版本信息等各种特征。
        (3)描述类与方法的各方面信息的元数据。
       2、CIL的好处:
         本身.NET集成了多中编程语言,每一种支持.NET的编译器生产的是几乎完全相同的CIL指令,所有语言都能很好的在定义明确的二进制文件间进行交互。
       3、将CIL指令编译成特定平台的指令:
         因为CIL指令与平台无关,CIL代码在执行之前一定要进行即时编译,用JIT编译器(即时编译器)将CIL代码编译成有意义的CPU指令。显然.NET运行库环境针对不同的CPU对JIT进行使用。

4、CTS中的5中类型(类、接口、结构、枚举、委托)

       1、CTS类类型:
           每一种支持.NET的语言至少要支持类类型(class type)的概念,类可能由很多成员构成(例如由构造函数、属性、方法、事件、数据点(字段)等构成),在C#中用class关键字来声明类。
           类的一些特征:
           (1)封闭类不能成为其他类的基类;
           (2)接口是抽象成员的集合,它在对象和对象的用户间提供一个契约,CTS允许类实现任何数目的接口;
           (3)抽象类是不能直接创建的,但是可以用来为派生类型定义公共的行为。具体类可以直接创建;
           (4)每个类必须用关键字来设置类的可见性,基本上可见性定义了该类型的类是被外部程序集使用,还是仅能在定义了它的程序集中使用。
      2、CTS的接口类型:
           接口就是由抽象成员定义所组成的一个具名集合,可以通过一个给点的类或结构来实现,在C#中接口类型使用interface关键字来定义。一般情况下,所有的.NET接口以大写字母I开头。
      3、CTS结构类型:
           结构可以可以看做是具有值语义的轻量级类类型,在C#中使用struct关键字创建结构。
      4、CTS枚举类型:
           在C#中使用enum关键字来创建一个枚举类型。默认情况下枚举类型中的成员项是用一个32位的整数来存储的,其实是可以改变其存储空间得大小。
      5、CTS委托类型:
           .NET委托是派生System.MulticastDelegate的类,而不是一个简单的指向原始内存地址的指针。在C#中使用delegate关键字来说明委托类型。
      6、CTS的类型成员:
            大部分的类型可能含有任意数量的成员,类型成员是集合{构造函数、终结器、静态构造函数、嵌套类型、操作符、方法、属性、索引器、字段、只读字段、常量、事件}中的元素之一。
      7、内建的CTS数据类型:
            CTS中建立了一套定义明确的核心数据类型(包括每一种托管语言),而各种托管语言的关键字只是System命名空间中真实类型的简化符号(例如System.Int与C#中的int对应一样、System.Byte与VB中的Byte一样)。

5、CLS

      1、CLS是一套语言特定的术语表达规则。描述了支持.NET的编译器必须支持最小的和完全的特征集,以生成可由CRL可承载的代码,同时可以被基于.NET平台的其他语言用统一的方式进行访问。CLS可以看出是有CTS定义的完整功能的子集。

6、CRL

      1、运行库可以理解为执行给定编译代码单元所需的外部服务的集合(运行环境)。

7、程序集、命名空间、类型的区别

      1、命名空间就是一个程序集内相关类型的一个分组,任何支持.NET运行库的语言都可以使用相同的命名空间。而一个程序集中可以包括多个命名空间,而一个命名空间中可以包含多个类型。

8、Microsoft根命名空间的作用

      1、规定了以Microsoft为根命名空间的命名空间只能在Windows操作系统的服务进行交互。自然就不能再其他支持.NET的操作系统上运行。 
      2、用using关键字访问命名空间。(即在需要使用命名空间时在命名空间加using关键字)
       如 : using System;
            using System.Windows.Shapes;

9、可以利用ildasm.exe(反编译工具)查看程序集

       打开Developer Command Prompt 工具  输入 ildasm 回车运行ildasm.exe ,打开工具后 File——>Open-->选择需要查看的程序集。
      1、查看CIL代码:双击类中的方法就能查看底层的CIL代码。
      2、查看类型元数据:在显示的CIL代码中 Ctrl+M 组合键查看元数据。
      3、查看程序集元数据(即程序集清单):双击MANIFEST图标即可查看程序集元数据。

10、.NET的平台无关性

      1、.NET程序集可以在多种支持.NET的的非微软操作系统上运行。
      2、通过CLI(Commom Language Infrastructure)公共语言基础设施。
      3、.NET程序集格式、核心.NET命名空间、假定的.NET运行时引擎的结构(虚拟执行系统,即VES)等文档说明C#与CLI语言的语法及语义。

11、构建Windows8应用程序

      1、.NET平台在Windows8同样可以使用,.NET本身并不是用来创建Windows8应用程序的。
      2、编写Windows 8应用程序要求开发者深入了解一个全新的运行库层(Windows Runtime(WinRT))。

你可能感兴趣的:(数据库系统工程师,.net,语言,clr,class,库)