C#学习笔记(一)

    技术2022-05-11  58

     

    计算机程序运行方式的三个发展阶段:

    1.单一·本地 可执行文件时代。2.分散的、基于DLL文件的时代。3.基于虚拟机的应用程序执行模式。

    Managed Execution 受控的执行或托管的执行。主要起到可移植性及安全执行的作用

    CLR=Common Language Runtime。FxCL=Framework Class Library。无论自己的应用程序还是通用的类库都运行在CLR上。

    Assembly概念Assemblies是.net对组件的称呼,是.net中的部署单元,一个Assembly=1个或多个源文件的编译结果。即程序集。FxCL Assemblies存储于GAC中,即Global Assembly Cache。在DOS时代必须指定应用程序的位置才能执行。在.net中提供了Assembly搜索算法,可根据.config文件(类似于INI文件)自定义Assembly搜索,不需要使用注册表。算法:1.应用程序要指定Assembly版本。2.在GAC中搜索相应版本。3.如果没有找到而且存在Config文件则到配置文件指定的位置搜索。否则到应用程序所在路径搜索。4.全部找不到则发生错误,程序终止。

    版本信息是通过 manifest编译到DLL或EXE中来发现的。其中存储了版本和依赖关系等信息。避免了使用注册表存储信息,不会再发生使用错误DLL版本的现象。由于使用了machine config、user config、app config等,也不会发生“配置文件陷阱”现象。

    部署方法

    DOS时代的步骤是通过XCopy进行的。Windows下通过安装程序,将所需文件复制到客户机,并将DLL文件注册。.net时代第一种是通过Xcopy来进行的,第二种是将一部分安装到EXE文件所在目录,另一部分安装在GAC中。GAC允许共享、安装同一个Assembly的多个版本。第三种是通过配置文件自定义部署,自定义安装位置。第四种是ClickOnce部署,程序自动检测版本更新。PDB文件是Debug支持用的文件,正式发布时不需要。Program Debug Database  。

    何时需要使用Static?1.需要全局数据和代码的时候

    只读字段与常量类型:

    例:public static readonly double Price=3.72。它和常量一样一旦赋值就不能修改。但只读的字段可以在定义时赋值,或者在构造函数中赋值,也可以不赋值。但常量在编译时必须是可计算的。常量只能使用内建类型,但是只读字段可使用任何值类型和引用类型。

    名称空间可使用别名。using xx= xxxx.xxxx.xxxx名称空间与与物理位置没有关系,这一点和Java的Package是不同的。 

    个人体会

    学习了C#的第一课,感觉比较深的就是,C#和VB有一点不同,它确实是从一开始就让你从面向对象的方式来编程。在VB编程中,尽管也是面向对象,但一些具体细节被隐藏了,例如我们照样可以声明全局变量、全局函数。但是C#中就不行,必须用类的静态成员来声明。这一点虽然很不起眼,但是对我这个刚刚从VB转过来的人来说却是感受很深的。


    最新回复(0)