.net与c#框架概述 and 类型,存储,变量

.net组成

  • 编程工具
  • 执行环境CLR(公共语言运行库)
  • 基类库BCL

C#

标识符命名规范:类型与成员名(每个单词首字母大写)
本地变量,方法参数(首单词大写)
关键字
格式字符串:替代标记{0}{1}。。。。(顺序使用,可替换)
注释:单行,多行,文档注释
ctrl+k+c加注释
ctrl+k+u取消

先来了解一下,项目、解决方案、程序集、命名空间四个容易混淆的概念。
①项目:就是我们开发的一个软件。.NET下,项目有多种类型,如控制台、Windows应用程序、类库、Web应用程序等等。经过编译后,会生成.exe文件和.dll文件。

.exe文件有统一的主程序入口,
可以被执行,而类库只是提供一些功能给其他项目调用。

②解决方案:当我们在VS中新建任何一种类型项目时,这个项目还属于一个解决方案。当我们的业务相对简单时,解决方案所发挥的作用并不是很大。但当我们开发复

杂的软件时,需要多个模块组成。
比如说开发中常用的三层架构,U层是一个简单的windows应用程序(项目的一种类型)、B、D层由多个类库(项目的另一种类型)组成。通过一个解决方案,我们就可

以将其(多个项目)组合起来,完成我们的开发。
形象地说,解决方案就是一个容器,在这个容器里,分成好多层,好多格,用来存放不同的项目。换句话来说:就是《程序集就是一个项目,多个项目构成一个解决方案》

③程序集:一个项目就是一个程序集。一个程序集可以体现为一个dll文件,或者exe文件。

④命名空间:主要是为了避免一个项目中,可能会存在的相同对象名的冲突。

对于编辑来说,命名空间仅仅是在类型名称前加了一些由点号隔开的符号而已.这使得一个类型的名称更长,从而也更具惟一性.如果两个相同的类在同一个命名空间则会冲

突,如果不同的命名空间有相同的类型,也会产生二义性。
注意,C#的using指示符会指示编译器试着在类型名上添加不同的前缀,直到找到一个匹配为止,命名空间只是逻辑上,真正的类型在程序集里,当查找一个类型的定义时,编

译器必须被告知到哪些程序集中进行查找,编译器将扫描它知道的所有程序集来查找类型的定义.一旦编译器找到了正确的程序,程序集信息和类型信息会被添加到生成托管

模块的元数据中。重要提示:CLR不知道命名空间的任何事情。访问一个类型时,CLR需要知道类型的完整名称(这可能是一个相当长、包含句点符号的名称)以及该类

型的定义具体在哪一个程序集中。这样一样,“运行时”才能加载正确的程序集,找到目标类型,并对其进行操作。
二、联系与区别
1、命名空间是类库的逻辑组织形式,程序集就是类库的物理组织形式。
2、一个程序集内可能有多个命名空间,一个命名空间可能存在于不同的程序集中
3、程序集是实现类型的文件,编译之后生成的。
命名空间是对类型的逻辑分组。
4、c#编译器可能比较关心命名空间,应为它需要确定类的完整名称,然后交给CLR。
CLR只关心程序集,会通过类的完整名称加载对应的程序集。
三、总结
通过在项目中使用分部类,发现可以通过分部类实现对这个类的扩充和完善。而使用分部类时我们会对命名空间进行修改,近而将类进行扩展;这就是我们说的一个

命名空间可以存在于不同的程序集。

类型&成员

成员:数据成员(字段)
函数成员(方法是特殊的函数)
类型:预定义类型:int,double
用户定义类型:class,array,struct,enum,delegate,interface

存储

栈和堆:

解释1、栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小
解释2、存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护。而堆是无序的,他是一片不连续的内存域,有用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收。引用类型总是存放在堆中。值类型和指针总是放在它们被声明的地方。
详情见此

变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值