C#基础之基本概念(在整理当中)

  3.1应用程序启动

     应用程序:具有入口点的程序集

       当应用程序运行时,将创建新的应用程序域,同一台计算机可能会同时运行着同一个应用程序的若干实例,则每个实例都有各自的应用程序域;

       应用程序域通过作为应用程序状态容器使应用程序得以隔离,应用程序域作为应用程序中和它使用的类库中所定义的类型的容器和边界;

       同一个类型若被加载到不同的应用程序域,就成为各自堵路的客体,由它们在各自应用程序域中产生的实例同样不可直接共享;

       至于如何处理程序域的创建和销毁,各实现方法可以按具体情况确定自己的策略或机制。

     应用程序启动:在执行环境调用指定的方法(称为程序的入口点)时发生,这个入口点方法总是被命名为Main,可以具有下列签名之一:

     入口点也可以选择是否包含参数,若有则参数类型必须为string[],那时执行环境会创建并传递一个包含命令行参数的string[]参数,这些命令行参数是在启动应用程序时指定的;string[]参数永远不能为null,若果没有指定命令行参数,它的长度为零。

     注:

     1.C#虽然支持方法重载(方法名一样,参数不同的方法),但在一个程序内,没有任何类或结构可以包含一个以上的名为Main的方法,这是因为Main的定义限制它只能用做应用程序的入口,允许使用Main的其他重载版本,前提是它们具有一个以上的参数或唯一参数类型不是string[]。

     2.应用程序可由多个类或结构组成,在这些类或结构中,可能会有若干个拥有自己的Main方法,这种情况必须利用某种外部机制(如命令行编译器的选项)来指定哪个Main方法作为入口点。

     3.在C#中同样存在访问性限制,应用程序入口是作为特殊情况存在的,执行环境不管入口什么访问类型,都可以访问(就这么强势)!

  3.2应用程序终止

     应用程序终止,将控制权返回给执行环境。

     刚才知道入口方法的返回类型可以是int,也可以是void;若为int,则返回的值作为应用程序的终止状态代码,这个终止状态代码是用来允许与执行环境进行关于应用程序状态(成功或失败)的通信;若为void,到达终止该方法的"}"或执行不带表达式的return时,会产生终止状态代码0。

     还有在应用程序终止之前,将调用还没有被垃圾回收的对象的析构函数,除非这类清理功能被设置为停止使用。

  3.3声明

     C#程序使用声明定义构成程序的元素。C#程序是用命名空间组织起来的,一个命名空间可以包含类型声明和嵌套的命名空间声明

     类型声明用于定义类、结构、接口、枚举和委托,即一个类型声明中可以使用哪些类型作为成员,取决于该类型声明的形式;

     声明所定义的名称属于它自己所属的那个声明空间,除非是重载成员,否则存在两个以上声明相同名称的成员会发生编译错误,也不能存在不同类型的同名成员;

     有若干种不同类型的声明空间:

       1.在程序的所有源文件中,命名空间成员声明若没有至于任何一个命名空间声明之下,就称为全局声明空间;

       2.在程序的所有源文件中,一个命名空间成员声明在命名空间声明中具有相同的完全限定的命名空间名称,就属于一个组合声明空间;

       3.基类和类、基接口和接口的声明空间无关,所以在派生类或接口声明和继承成员的声明同样时,我们称是隐藏了继承成员;

       4.每个枚举声明创建一个新的声明空间,名称通过枚举成员声明引入此声明空间;

       5.每个块为局部变量和常量创建一个不同的声明空间,在嵌套块中不可能声明与封闭它的块中的局部变量同名的局部变量;

  3.4成员

猜你喜欢

转载自www.cnblogs.com/dreamoffire/p/10063548.html