您的位置:首页 > 编程语言 > C#

C#基础知识回归

2015-11-13 17:42 288 查看
1. 简述 private、 protected、 public、 internal、internal protected 修饰符的访问权限。

答:

没有标明访问级别的就是private。

private:私有成员,只能在类的内部才可以访问。

protected: 保护成员,只能从所在类和所在类派生的子类进行访问

public: 公共成员,不限制对该类的访问。

internal: 访问仅限于当前程序集(Assembly)。

internal protected: 访问仅限于程序集(Assembly)和程序集(Assembly)所属的类派生的类型。

2.什么是命名空间?它的作用是什么?

答:命名空间是一组保持唯一的名称。命名空间用于声明一个范围,此命名空间范围允许您组织代码并提供了创建全局唯一类型的方法。命名空间是避免命名冲突的一种方式。(MSDN)

3.什么是程序集(Assembly)?它有什么特性。

答:程序集(Assembly)是自我描述的安装单元,由一个或多个文件组成,一个程序集可以是一个包括元数据的DLL或EXE,也可以由多个文件组成。(C#高级编程)

程序集是可重用、无版本冲突并且可自我描述的公共语言运行库应用程序构造块。程序集提供使运行库能够充分了解应用程序的内容并强制使用应用程序定义的版本控制和依赖项规则的结构。这些概念对解决版本控制问题和简化运行库应用程序的部署至关重要。(MSDN)

特性:

(1) 程序集是自我描述的.程序集包含描述程序集的元数据,元数据包括从程序集导出的类和一个清单。

(2) 版本的互相依赖性在程序集的清单中进行了记录。引用程序集的版本被存储在程序集的清单中。

(3) 程序集可以进行并行加载 .在。NET中同一个程序集的不同版本可以在同一个进程中使用。

(4) 应用程序使用应用程序域(Application Domain)来确保其独立性.使用应用域,许多应用程序可以独立的运行在一个进程中。

(5) 安装非简单,只要复制一个程序集中的所有文件。

4.什么是应用程序域AppDomain?

答1:在.NET结构中,应用程序域是应用程序的一个边界,运行时就不能访问同一个进程中另外一个应用程序的内存,多个应用程序可以运行在多个应用域的一个进程中。(C#高级编程)

答2:应用程序域(通常为 AppDomain)是一个用于隔离应用程序的虚拟进程。在同一应用程序范围内(换句话说,以应用程序入口点开头的对象激活序列中的任何位置)创建的所有对象都创建在同一应用程序域中。多个应用程序域可以存在于单个操作系统进程中,这使它们成为应用程序隔离的轻量方法。

操作系统进程通过提供一个独特的内存地址空间来提供隔离。虽然这很有效,但成本很高,而且不能扩展到大型 Web 服务器所需的数目。另一方面,公共语言运行库通过管理运行在应用程序域中的代码的内存使用来强制应用程序隔离。这可确保它不会访问域边界以外的内存。注意只有类型安全代码才能以这种方式进行管理(运行库在不安全代码加载到应用程序域中时无法保证隔离)很重要

答3:应用程序域 (AppDomain) 可以被看作一个轻型的进程。在一个 Win32 进程中可以存在多个ppDomain。AppDomain 的主要目的是将应用程序和其它应用程序隔离开来。

通过使用独立的地址空间,Win32 进程提供隔离性。这种方法很有效,但开销很大并且伸缩性不好。.NET 运行库通过控制对内存的是用来施加 AppDomain 隔离—AppDomain 中的所有内存是由 .NET 运行库来管理的,所以运行库可以确保 AppDomain 之间不能访问彼此的内存。(http://blog.csdn.net/ianc/)

单个进程可以运行多个应用程序域,并具有在单独进程中所存在的隔离级别。在单个进程中运行多个应用程序提高了服务器伸缩性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: