当前位置:  编程技术>.net/c#/asp.net

c# 引用类型和值类型

    来源: 互联网  发布时间:2014-10-15

    本文导语:  CLR支持两种类型:引用类型和值类型。 引用类型总是从托管堆上分配的。 c#中的New操作符返回对象的内存地址。 引用对象的注意点: 1、内存从托管堆中分配 2、堆上分配对象,有一些额外的操作,影响一些性能的 3、从托管...

CLR支持两种类型:引用类型和值类型。
引用类型总是从托管堆上分配的。

c#中的New操作符返回对象的内存地址。

引用对象的注意点:

1、内存从托管堆中分配
2、堆上分配对象,有一些额外的操作,影响一些性能的
3、从托管堆中分配一个对象时,可能强制执行一次垃圾回收。

CLR中的值类型是轻量级的。不需要提领一个指针,不需要垃圾回收,可以减少垃圾回收的次数。
在CLR中一般称为“类”的都是引用类型,所有的值类型都称为结构或者枚举。
所有的结构都是抽象类ValueType的直接派生类。ValueType是直接从Object派生的。
所有的枚举都是从Enum抽象类中派生的,Enum又是从ValueType派生的。

一个值类型可以实现一个或者多个接口,但是不能继承基类。所有的值类型都是隐式密封的。

c#中用struct声明结构,class声明类。

值类型应满足:

1、类型具有基元类型
2、类型不需要从其他任何类型继承
3、不会作为基类
4、类型的大小不要超过16k

值类型和引用类型的不同点:

1、不能将值类型作为基类型
2、引用类型变量包含的是堆上的一个对象地址。值类型是值对象本身。
3、值类型赋值的时候会执行一次逐字段的复制,引用类型变量赋值的时候,只复制内存地址。
4、引用类型的多个变量可能引用堆中的同一个对象,值类型是自成一体的,互不影响的。

    
 
 

您可能感兴趣的文章:

  • 怎么样把基本数据类型转换为引用类型啊?唉,菜鸟
  • java的引用类型的详细介绍
  • C#引用类型和值类型的介绍与实例
  • c#值类型和引用类型使用示例
  • C#中值类型与引用类型作为参数传递时的区别
  • c#字符串值类型与引用类型比较示例
  • c#值类型与引用类型的区别
  • JAVA中如何实现对基本类型的引用?
  • c# 引用类型构造器
  • GCC下引用类型
  • 关于引用类类型的赋值问题
  • c# 引用类型与值类型的区别详解
  • C#引用类型转换的常见方式总结
  • c++中拷贝构造函数的参数类型必须是引用
  • 深入解析C++中的引用类型
  • C#值类型和引用类型的深入理解
  • c# 调用Surfer软件,添加引用的具体操作方法
  • 将ocx文件转换成C#程序引用的DLL文件的办法
  • c#网站WebConfig中域名引用示例介绍
  • C#: 引用变量与数值变量的区别
  • c#中xml文档注释编译dll引用到其它项目示例
  • C#跨窗体操作(引用传递) 实例代码
  • c#编写webservice服务引用实例分享
  • c#方法中调用参数的值传递方式和引用传递方式以及ref与out的区别深入解析
  • C#中的值传递和引用传递详细解析
  • C#中按引用传递与按值传递的区别,以及ref与out关键字的用法详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • HTML5 <blockquote> 标签(定义引用)详细介绍及举例说明
  • Java中弱引用和软引用的区别以及虚引用和强引用介绍
  • JQuery 在线引用及测试引用是否成功
  • c++ const引用与非const引用介绍
  • “当某个实例不再被任何对象引用时就会被垃圾回收机制回收”,那么怎样才算是不被任何对象引用呢?
  • python共享引用(多个变量引用)示例代码
  • 解析Android开发优化之:软引用与弱引用的应用
  • 如何在一个package中引用另一个package中的类?
  • JSP引用JAVABEAN的问题
  • 关于在内核空间和用户空间引用一个空指针的后果很原因
  • 关于环境变量的设置和引用
  • grep 后向引用问题
  • 我的Jbuilder怎么引用我自己编写的Class文件?
  • 在aspx页面引用html页的写法
  • 没人解决吗?我在一个包中如何引用一个未打包的Class?
  • 用户定义类引用??
  • 一个简单的引用的问题
  • EJB间如何引用?
  • iso的头文件怎么在linux下引用啊
  • 请问在C文件中如何引用 C++ 生成库?
  • 引用的奇怪问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3