应用程序域(application domain)
应用程序域是.NET中的一个重要技术改进,它用于减少运行应用程序的系统开销.
应用程序域是分离组件的一种方式,它把任何一个进程分解到多个应用程序域中.
每个应用程序域大致对应一个应用程序,执行的每个线程都运行在一个具体的应用程序域中.程序集(assembly)
程序集包含程序的元数据。它有两种类型:私有程序集和共享程序集。私有程序集一般附带在某个软件上,且只能用于该软件。共享程序集是其他应用程序可以使用的公共库。
共享程序集有名称冲突以及程序集容易被同一个程序集的不同版本覆盖两个风险, 解决被覆盖的方法是把共享程序集放在文件系统的一个特定的子目录树中,称为全局程序集缓存(GAC)。为了避免名称冲突,根据私钥加密法为共享程序集指定一个名称,该名称称为强名。名称空间
名称空间是.NET避免类名冲突的一种方式。它是一种代码的逻辑组合。
如没有显示提供名称空间,类型就添加到一个没有名称的全局名称空间中。
微软建议至少要提供两个嵌套的名称空间名,这样可以保证类名不会与其他组织编写的类名冲突。垃圾回收(Garbage Collector)
gc在.NET中用来进行内存管理。它可以恢复正在运行的应用程序需要的内存。
C++是让应用程序代码自己负责来释放内存,很容易出现内存泄漏。
注:垃圾回收机制不能和C++语言一起使用
gc的一个缺点是它的不确定性,不保证什么时候会调用垃圾回收器。值类型和引用类型的区别
值类型,变量直接存储其数据;而对于引用类型,变量仅存储地址。
引用类型的实例总是存储在一个名为”托管堆”的内存区域中,而值类型一般存储在堆栈中(但如果值类型在引用类型中声明为字段,它就内联存储在堆中)。
值类型不能派生出其他类型,值类型不需要垃圾回收,不会因类型标识而产生开销。
引用类型在传参、赋值、返回等操作时,只需复制4或8字节,而不是全部数据。
数组是引用类型,即使其中元素为值类型,枚举是值类型。
委托是引用类型,接口类型是引用类型。类和结构的区别
结构和类的区别是它们在内存中的存储方式及访问方式。类是存储在堆上的引用类型,结构是存储在栈上的值类型。较小的数据类型使用结构可提高性能。
给结构分配内存,非常快,删除也快,但是把结构当参数传递的时候,结构的所有内容将被复制,而类只复制引用。结构不能被继承,系统默认会为其提供一个无参构造函数,其字段一般设为Public。虚拟(virtual)函数和抽象(abstract)函数的区别
抽象函数必须被重写,它不含任何功能的实现,而虚拟函数可能被重写
[C#]一些.NET基础概念
最新推荐文章于 2024-05-29 00:14:17 发布