在C#中,变量分为一下几种类型
1值类型
2引证类型
3指针类型
一值类型
值类型是从类System.Valuetype中派生。值类型变量能够直接赋值,值类型直接包括数据。
比方bool、byte、char、decimal、double、float、int、long、sbyte(8位有符号整数类型)、short(16位有符号整数类型)、uint、ulong、ushort、enum、struct。
如需得到一个类型或一个变量在特定平台上的准确尺寸,能够运用sizeof方法,表达式sizeof(type)发生以字节为单位存储目标或类型的存储尺寸。
Console.WriteLine(“Sizeofint:{0}”,sizeof(int));
Console.ReadLine();
输出成果
Sizeofint:4
二引证类型
引证类型不包括存储在变量中的实际数据,但包括对变量的引证。
运用多个变量时,引证类型能够指向一个内存方位。如果内存方位的数据是由一个变量改变的,其他变量会主动反映这种值的变化。
内置的引证类型有:object、dynamic和string。
object类型
object是所有类型的基类。
类型查看在编译时发生。
当一个值类型转换为目标类型时,则被称为装箱;另一方面,当一个目标类型转换为值类型时,则被称为拆箱。
objectobj;
obj=100;//装箱inti;
i=(int)obj;//拆箱
dynamic类型
能够存储任何类型的值在dynamic类型变量中。
类型查看在运行时发生。
例如:
dynamicd=100;
String类型
string类型是从object类型派生的,能够用引号或@引号赋值。
string字符串的前面加@(“逐字字符串”)将转义字符
例如:
stringstr=”C:\Windows”;
等价于
stringstr=@”C:Windows”;
用户自定义类型
有class、interface、delegate等。
三指针类型
指针类型变量存储另一种类型的地址。
例如:
int*p1;char*p2;
四值类型和引证类型的差异
1值类型在栈中存储数据;引证类型在栈中存储数据的地址,数据存储在堆中。
2赋值时,值类型仿制的的是数据;引证类型仿制的的是数据的地址。
3值类型不能够为null;引证类型能够为null。
例如:
inti=1;inti2=i;//仿制数据i2=2;
Console.WriteLine(i);
Console.WriteLine(i2);objectobj=10;objectobj2=obj;//仿制地址obj2=20;
Console.WriteLine(obj);
Console.WriteLine(obj2);
Console.ReadLine();
输出成果:
122020
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com