代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小
程序执行的时候,在栈和堆中分配有四种主要的类型:值类型,引用类型,指针,指令。
继承自System.ValueType的类型被称为值类型,
引用类型:继承自System.Object: class、 interface、 delegate、 object、 string。
当我们使用引用类型的时候,一般是对指针进行的操作而非引用类型对象本身。但是值类型则操作其本身。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DuiZhan
{
class Program
{
static void Main(string[] args)
{
int ReturnValue2()
{
MyInt x = new MyInt();
x.MyValue = 3;
MyInt y = new MyInt();
y = x;
y.MyValue = 4;
return x.MyValue;
}
Console.WriteLine(ReturnValue2());
Console.ReadKey();
}
}
public class MyInt
{
public int MyValue;
}
}
is:检查对象是否与给定类型兼容。is就是处于对类型的判断。is操作符永远不会抛出异常。
如果对象引用为null,那么is操作符总是返回为false。
as 运算符:用于在兼容的引用类型之间执行转换。
检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
不好抛出异常; 如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;