对象类型需要动态内存,基础类型需要静态内存

动态内存分配在堆上,静态内存分配在栈上。

静态内存保存着简单的变量,如 int a=0;

值类型:把一个值类型赋值给另外一个值类型,改变其中一个另外一个不会受影响

引用类型:因为是引用,所以改变会互相影响

c#装箱 值转引用类型  把值类型的数据给储存到引用类型的堆上

什么是装箱:装箱其实就是可以说是隐式转换

值类型    int i=1;

  引用类型 object value =1 ;  value(ref(引用了 i=1))装箱

       值类型  int  b =(int )value;拆箱

      自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。      转换规则为:                                        从存储范围小的类型到存储范围大的类型。     例如:我有一个箱子(内存空间)一把钥匙(引用),我有个东西(int i),本来可以直接拿走,但是因为 这样: public class a(){ int i=1;值类型}        public void s( int Id){    class b=new class();装箱,拆箱   id=b.i;}  我又是那一不小心撞到箱子里面,还得拿钥匙开,人都会嫌烦,何况程序呢,这就是性能损耗        

C#拆箱;隐转值 把储存到引用类型堆上的值储存到局部变量整形中

什么是隐式转换:程序会自动给你转换好

什么是显示转换: 强制转换==显示转换:在程序需要一个类型的时候,你给我另外一种类型,噶怎么办,

例如:我需要吃西瓜,你给我冬瓜,怎么办,强行使用魔法(程序代码)把你冬瓜变成西瓜

值类型:只需要一段单独的内存,

引用类型:需要两端

存储引用类型对象的成员

假设有一个引用类型的实例,

引用类型有两个成员,一个值类型A 一个引用类型B

值放栈里面,那么B的引用是放在堆,值放在栈里面?

当然不是, 对于引用类型的任何对象,它的所有数据

成员都放在栈里面,无论是值还是栈

预定义值类型:sbyte byte float short ushort double int uint char long ulong decimal bool

用户自定义值类型:struct结构  enun

预定义引用类型:object string dynamic

用户自定义值类型:class类 interface接口  delegate委托   array数据

c#基础-类型基础深入了解的更多相关文章

  1. Java基础(2)-基础类型

    java基础类型 基础类型 package knowledge.base; public class Properties { /** * 整型 * int 4字节 -2 147 483 648 ~2 ...

  2. salesforce 零基础学习(五十八)通过sObject的field返回其对应的基础类型

    项目中有时候会要求通过sObject的Field的type类型返回其对应的基本类型,然后对其进行相关的处理,创建sObject的field可以选择的type类型是固定多的. 上述类型可以转换成几种基本 ...

  3. TypeScript 素描-基础类型

    博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...

  4. Typescript基础类型

    1.布尔值__boolean 2.数字__number----除了支持十进制和十六进制字面量,Typescript还支持ECMAScript 2015中引入的二进制和八进制字面量. 3.字符串__st ...

  5. 玩转JavaScript OOP[0]——基础类型

    前言 long long ago,大家普遍地认为JavaScript就是做一些网页特效的.处理一些事件的.我身边有一些老顽固的.NET程序员仍然停留在这种认知上,他们觉得没有后端开发肯定是构建不了系统 ...

  6. 【Go入门教程2】内置基础类型(Boolean、数值、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值

    这小节我们将要介绍如何定义变量.常量.Go内置类型以及Go程序设计中的一些技巧. 定义变量 Go语言里面定义变量有多种方式. 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型 ...

  7. Java基础类型总结

    最近一直在总结反思自己, 趁着现在请假在学校上课的空余时间,从基础开始重新温故学习下Java,充实下自己. 一.数据类型 从下图中,我们可以很清晰的看出Java中的类型,其中红色方框中的是Java的4 ...

  8. Java基础类型与其二进制表示

    Java中的基础类型有:byte.short.int.long.float.double.char和boolean. 它们可被分为四种类型,整型.浮点型.char型和boolean型. 整型:byte ...

  9. java基础-基础类型包装类型

    想要对基本类型数据进行更多的操作,最方便的方式就是将其封装成对象. 为啥呢?因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行操作. [八种基本数据类型的包装类] byte --Byte ...

随机推荐

  1. 进程间通信IPC:消息队列,信号量,共享内存

    2015.3.4星期三 阴天 进程间通信:IPC 文件对象:记录文件描述符,文件开关等 IPC标示符:系统全局的流水号两个进程要通信,打开的是唯一的对象进行通讯,通过key操作 XSI IPC:消息队 ...

  2. 关于ubuntu下词典安装

    圣诞快乐!merry xmas! 身为程序猿和研究僧,英文文献是经常接触的,所以在ubuntu下当然需要一款英汉词典啦 查了下推荐stardict的比较多,于是学着安装了下,感觉还不错,但是只有词典功 ...

  3. OD调试篇8

    那么今天需要破解的呢,是这样一款软件. 程序刚刚进去会发现一个nag弹窗   说没有注册,要花20美金才能注册.只有5天的限制期限可以用了 进去之后 点击help里的关于这款软件   也显示了这是一个 ...

  4. 生日蛋糕—dfs

    Description 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri ...

  5. magento中如何实现产品图片放大效果

    Magento列表页用jQuery实现产品图片放大效果今天看到个网站,鼠标移到列表页的产品图片上,旁边会弹出一个大图,感觉不错,就自己在Magento里写了个.先看看效果 这个效果比较好实现,打开li ...

  6. EntityFramework 实体映射到数据库

    EntityFramework实体映射到数据库 在Entity Framework Code First与数据表之间的映射方式实现: 1.Fluent API映射 通过重写DbContext上的OnM ...

  7. Oracle函数--字符串拼接

    常用的字符串聚合(拼接)函数介绍 1.WMSYS.WM_CONCAT 从oracle 10G开始支持,使用案例如下: select deptno,wmsys.wm_concat(ename) from ...

  8. oracle数据库--启动和关闭

    oracle--启动 oracle数据库的启动过程包含3个步骤:启动实例->加载数据库->打开数据库 分步骤启动过程可以对数据库进行不同的维护操作,对应我们不同的需求. 启动模式: 1.s ...

  9. Bundle

    [[NSBundle mainBundle] pathForResource:@"someFileName" ofType:@"yourFileExtension&quo ...

  10. uva 10375

    /* 选择与除法_________________________________________________________________________________ #include & ...