• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c# 引用类型与值类型的区别详解

c# 引用类型与值类型的区别详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#泛型详解,c#网站开发案例详解,c#关键字详解,c#三层架构详解,c#基础与案例开发详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
解析:CLR支持两种类型:值类型和引用类型。用Jeffrey Richter(《CLR via C#》作者)的话来说,“不理解引用类型和值类型区别的程序员将会把代码引入诡异的陷阱和诸多性能问题”。这就要求我们正确理解和使用值类型和引用类型。
值类型包括C#的基本类型(用关键字int、char、float等来声明),结构(用struct关键字声明的类型),枚举(用enum关键字声明的类型);而引用类型包括类(用class关键字声明的类型)和委托(用delegate关键字声明的特殊类)。
C#中的每一种类型要么是值类型,要么是引用类型。所以每个对象要么是值类型的实例,要么是引用类型的实例。值类型的实例通常是在线程栈上分配的(静态分配),但是在某些情形下可以存储在堆中。引用类型的对象总是在进程堆中分配(动态分配)。
(1)在C#中,变量是值还是引用仅取决于其基本数据类型。
C#的基本数据类型都与平台无关。C#的预定义类型并没有内置于语言中,而是内置于.NET Framework中。.NET使用通用类型系统(CTS)定义可以在中间语言(IL)中使用的预定义数据类型。C#中所有的数据类型都是对象。它们可以有方法、属性等。例如,在C#中声明一个int变量时,声明实际上是CTS(通用类型系统)中System.Int32的一个实例:
引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。简称引用类型部署在托管推上。值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实例)存储;作为局部变量时,存储在栈上。值类型在内存管理方面具有更好的效率,并且不支持多态,适合用做
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#的泛型方法解析
  • C#给Excel添加水印实例详解
  • C#枚举类型和结构体详解
  • C#基础之泛型
  • C#调用Java方法实例详解
  • C#获取机器码的方法详解(机器名,CPU编号,硬盘编号,网卡mac等)
  • C#中数组Array,ArrayList,泛型List详细对比
  • C#泛型委托的用法实例分析
  • C#同步网络时间的方法实例详解
  • C#中的预处理器指令详解

相关文章

  • 2017-05-28在Unity中实现简单的伪时间同步
  • 2017-05-28C#获取文件MD5值的实现示例
  • 2017-05-28为何Linq的Distinct实在是不给力
  • 2017-05-28C#实现对文件进行加密解密的方法
  • 2017-05-28C#学习笔记整理_深入剖析构造函数、析构函数
  • 2017-05-28WinForm天猫双11自动抢红包源码分享
  • 2017-05-28浅谈C#2.0泛型中的变化:default关键字
  • 2017-05-28解析XPath语法之在C#中使用XPath的示例详解
  • 2017-05-28sqlserver备份还原数据库功能封装分享
  • 2017-05-28c#异步task示例分享(异步操作)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C# Dynamic关键字之:调用属性、方法、字段的实现方法
    • c# 抓取Web网页数据分析
    • c#使用简单工厂模式实现生成html文件的封装类分享
    • C#学习笔记整理_浅谈Math类的方法
    • C# 禁用鼠标中间键的方法
    • C#运行CGI程序实例
    • 将DataTable转换成List<T>实现思路及示例代码
    • C#可选参数的相关使用
    • C#导出GridView数据到Excel文件类实例
    • C#调用sql2000存储过程方法小结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有