提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
值类型直接存储其值,引用类型存储对值的引用。
值类型存储在堆栈(stack)中,引用类型存储在托管堆(managed heap)上。
提示:以下是本篇文章正文内容,下面案例可供参考
一、值类型
int 是值类型,所以下面的语句会存储在两个地方
i=20;
j=i;
1.基本数据类型
bool和long都是值类型。
如果声明一个Bool变量,并赋予给另一个Bool变量的值,内存中会有两个Bool的值。
整型
名称 | 说明 | 范围 |
---|---|---|
sbyte | 8位有符号的整数 | -128~127 |
short | 16位有符号的整数 | -32768~32767 |
int | 32位有符号的整数 | -2147483648~2147483647 |
long | 64位有符号的整数 | -9223372036854775807~9223372036854775807 |
byte | 8位无符号的整数 | 0~255 |
ushort | 16位无符号的整数 | 0~65535 |
uint | 32位无符号整数 | 0~4294967295 |
ulong | 64位无符号的整数 | 0~18446744073709551615 |
浮点型
decimal类型
bool类型
字符类型
转义字符
二、引用类型
vector x,y
x=new vector();
x.value=30;
y=x;
Console.WriteLine(y.value);
y.value=50;
Console.WriteLine(x.value);
其中x和y都是指向包含该对象的内存位置。因为x和y都是引用类型的变量,声明两个变量值保留了一个引用,而不是实例化给定类型的对象。两种情况下都不会真正创建对象。要创建对象,就必须使用new关键字。因为x和y引用同一个对象,所以对x的修改会影响y
预定义的引用类型
1.object类型
object类型是最终的父类型
- 可以使用object来绑定任何特定子类型的对象
- 实现了许多一般用途的基本方法
2.string类型
string str1=“HELLo”;
string str2=“WORLD”;
string str3=str1+str2;
当一个字符串变量赋予另一个字符串使,会得到对内存中同一个字符串的两个引用。