堆 和 栈 的区别

代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小

程序执行的时候,在栈和堆中分配有四种主要的类型:值类型,引用类型,指针,指令。

继承自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异常;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容