记载一些从他人书籍或资料或者自己认为有价值的内容~
两种不同类型的内存区域:线程堆栈(Thread Stack)和托管堆(Managed Heap)。
线程堆栈: 每个正在运行的程序都对应着一个进程(process),在一个进程内部,可以有一个或多个线程(thread),每个线程都拥有一块“自留地”,称为“线程堆栈”,分配与回收不需要程序员干涉,大小为 1M,用于保存自身的一些数据,比如函数中定义的局部变量、函数调用时传送的参数值等
托管堆: 用 new 关键字创建的类的对象时,分配给对象的内存单元就位于托管堆中。托管堆中的内存资源是可以动态申请并使用的,当然用完了必须归还。
两个对象变量的相互赋值意味着赋值后两个对象变量所占用的内存单元其内容是相同的。---即使说两个相同类的不同对象变量的赋值是内存引用的赋值~结果使得两个对象变量都指向同一内存,对任何一个对象变量的更改都会引起对方变量值的更改~
C#使用“==”运算符比对两个对象变量是否引用同一对象,“!=”比对两个对象变量是否引用不同的对象。但如果“==”被用在值类型的变量之间,则比对的是变量的内容 对象内容的比较,要用equal,因为对象涉及引用地址与对象实例之分
.NET Framework 使用命名空间来管理所有的类。如果把类比喻成书的话,则命名空间
类似于放书的书架,书放在书架上,类放在命名空间里。
命名空间是可以嵌套的:
最大的命名空间--〉子命名空间--〉孙命名空间--〉最终找到一个类。
“命名空间”是一个逻辑上的概念,它的物理载体是“程序集”,具体体现为“DLL”(或EXE)文件。在 Visual Studio 中,可通过创建“类库”类型的项目生成程序集。 一个程序集可以有多个命名空间,而一个命名空间也可以分布于多个程序集。
其他项目中就可以通过添加对这一程序集的引用而使用此程序集中的类。其方法是在“项目”菜单中选择“添加程序集”命令,激活“浏览”卡片,选择一个现有的程序集文件(DLL 或 EXE)。