代码驿站移动版
频道导航
HTML/Xhtml
CSS
JavaScript
HTML5
PHP教程
ASP.NET
正则表达式
AJAX
ThinkPHP
Yii
MySQL
MariaDB
Oracle
MongoDB
Redis
DedeCMS
PHPCMS
帝国CMS
WordPress
Discuz
其它CMS
Zend Studio
Sublime
Notepad
Dreamweaver
Windows
Linux
Nginx
Apache
IIS
CentOS
Ubuntu
Debian
网站优化
工具资源
PHP源码
ASP.NET源码
其它源码
图标素材
按钮素材
字体素材
DedeCMS模板
帝国CMS模板
PHPCMS模板
WordPress模板
Discuz!模板
单页模板
开发软件下载
服务器软件下载
广告投放
联系我们
版权申明
软件编程
网页前端
移动开发
数据库
服务器
脚本语言
PHP代码
JAVA代码
Python代码
Android代码
当前位置:
主页
>
软件编程
>
.NET代码
>
c# 引用类型和值类型
时间:2020-12-16 10:02:38 | 栏目:
.NET代码
| 点击:次
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、引用类型的多个变量可能引用堆中的同一个对象,值类型是自成一体的,互不影响的。
您可能感兴趣的文章:
C#中观察者模式的3种实现方式
ASP.NET获取MS SQL Server安装实例实现思路及代码
Repeater里switch的使用方法
C# winform编程中响应回车键的实现代码
使用C#获取远程图片 Form用户名与密码Authorization认证的实现
相关文章
12-15
Unity使用LineRender实现绘画功能
11-27
unity实现玻璃效果
11-30
在ASP.NET 2.0中操作数据之六:编程设置ObjectDataSource的参数值
10-31
用.NET做动态域名解析的方法示例
10-17
C#使用checkedListBox1控件链接数据库的方法示例
JQuery
VUE
AngularJS
MSSql
MySQL
MongoDB
Redis
Linux
Tomcat
Nginx
网站首页
广告投放
联系我们
版权申明
联系站长