- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 C#程序设计基础 ;2.1 标识符 ;2.2 C#中数据类型; 值类型的变量内含变量值本身,C#的值类型可以分为简单类型、结构类型和枚举类型。;1. 整数类型;2. 实数类型;3 字符类型;4. 布尔类型
布尔类型数据用于表示逻辑真和逻辑假,布尔类型的类型标识符是bool。 ;5. 简单类型对应的.NET Framework系统类型别名; 引用类型也称为参考类型。和值类型相比,引用类型的变量不直接存储所包含的值,而是指向它所要存储的值。类似C中的指针。 ;1. object类
object是C#中所有类型(包括所有的值类型和引用类型)的基类,C#中的所有类型都直接或间接地从object类中继承而来。因此,对一个object的变量可以赋予任何类型的值。
float f=1.23;
object obj1; //定义obj1对象
obj1=f;
object obj2=China; //定义obj2对象并赋初值; C#还定义了一个string类,表示一个Unicode字符序列,专门用于对字符串的操作。
同样,这个类也是在.NET Framework的命名空间System中定义的,是类System.String的别名。 ; 字符串在实际中应用非常广泛,利用string类中封装的各种内部操作,可以很容易完成对字符串处理。例如:
string str1=123+abc; //+运算符用于连接字符串
char c=Hello World![2]; //[]运算符可以访问string中的单个字符,c=e
string str2=China;
string str3=@China; // 字符串的另一种表示形式,用@引起来。
bool b=(str2==str3); //==运算符用于两个字符串比较,b=true;1. 变量定义
在C#程序里使用某个变量之前,必须要告诉编译器它是一个什么样的变量,因此要对变量进行定义。定义变量的方法如下:
[访问修饰符] 数据类型 变量名 [= 初始值];;例如:
string name=王华;
int age=20;
也可以同时声明一个或多个给定类型的变量,例如:
int a=1,b=2,c=3;; 定义一个变量,系统就会在内存中开辟相应大小的空间来存放数据。可以从下面4个层面来理解变量。;2.3.2 值类型变量和引用类型变量的区别;1. 栈空间和堆空间;进栈和出栈操作; 堆空间是一块内存空间,在堆空间中可以分配大块的内存以存储某类型的数据对象。
与栈不同,堆里的空间能够以任意顺序存入和移除。;如图2.5所示表示一个程序在一个堆里存放了3个数据。;2. 理解值类型的变量;例如:
int x;
int y=2;
x=y;; 在C/C++语言中可以定义指针变量,例如:
char *p;
其中,p是一个指针变量,其中存放某个字符变量的地址,注意变量p和它所指向的字符变量是两个不同的东西。
在C#中没有指针,而改为引用,引用表示某个对象的地址而不是变量或对象本身。; 在C#中,无论值类型变量还是引用类型变量,都是在栈空间中分配对应的存储空间,所不同的是,引用类型变量所指向的对象是在托管堆上分配内存空间的,为什么这样呢? ; void fun()
{ char *p; //定义指针变量p
int i; //定义整型变量i
p=(char *)malloc(11*sizeof(char)); //为p分配11个字符的空间
for (i=0;i10;i++) //为10个字符单元分别赋值a~j
*(p+i)=a+i;
*(p+i)=’\0’;
printf(%s\n,p); //输出:abcdefghij
}; .NET Framework改进了这一点:
将C#应用程序的执行置于CLR的监控之下,而且所有引用类型变量所指向的对象(其生命周期是全局性的)都在托管堆上分配空间,程序执行完毕,由CLR将堆空间全部回收,这样就不会出现像前面C/C++程序出现的内存泄漏问题了。; 所以在C#中,当定义一个引用类型变量时,系统在栈空间中为该引用变量分配存储空间,要想创建对象并把对象的存储地址赋给该变量,就需要使用new操作符。例如:
MyClass var; //MyClass是已定义的类或类型
var=new MyClass(); //创建var引用的实例 ,new
您可能关注的文档
- 第2章__土地利用概论综述.ppt
- 物业项目售楼处管理方案分解.doc
- 第2章__职业道德与审计准则综述.ppt
- 当前农村社会矛盾纠纷的现状及解决对策农林牧渔综述.doc
- 第2章_EXCEL工作图表综述.ppt
- 第5章1磁电传感器综述.ppt
- 第2章_工程造价构成综述.ppt
- 第2章_管理信息系统的概念综述.ppt
- 无损检测施工方案分解.doc
- 第2章_平面问题的基本理论综述.ppt
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)