类型(Type)
又称为数据类型(Data Type)
数据类型是数据在内存中存储时的“型号”
小内存容纳大尺寸数据会丢失精确度、发生错误
大内存容纳小尺寸数据会导致浪费
编程语言的数据类型与数学中的数据类型不完全相同
编程时数据受到数据类型的约束 - 强类型编程语言
编程时数据受到的数据类型的约束并不严格或数据不受数据类型的约束 - 弱类型编程语言
强类型(C#):
int x;//一个32bit位变量
x = 100L;//存放64bit位的数据时出错
bool y;
y = 100;//bool类型的变量无法存放整型数据
if (x = 200)
{
//C#语言规定if后是一个bool运算,不能是赋值,这里会报错
Console.WriteLine(x);
}
弱类型(C):
int x = 100;
if (x = 200)
{
//C语言中的bool只有0和非0,所以if后可以接赋值
printf(x);
}
C#模仿弱类型:
dynamic x = 100;
Console.WriteLine(x);
x = "Hello,world!";
Console.WriteLine(x);
//dynamic是动态类型
类型所包含的信息
存储此类型变量所需要的内存空间大小
此类型的值所能表示的值的范围
此类型所包含的成员(如属性、方法、事件等)
此类型由何基类派生而来
程序运行时,此类型的变量分配在内存中的位置(会把内存分为栈区和堆区)
此类型所允许的操作(运算)
栈(Stack)
用于方法调用
栈区比较小,速度比较快
程序代码出错时,在栈上使用了过多的内存时,就会造成栈溢出(Stack overflow)
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
StackOver