C#基础 1(异同与区别及其特点)

一.值类型与引用类型的主要区别

  1.值类型分配在栈上,引用类型分配在堆上

  2.值类型继承自ValueType,引用类型不会继承自ValueType

  3.值类型变量包含实例数据,而引用类型变量,保存了其数据的引用地址

  4.值类型不由GC(垃圾回收机制)管理,自动释放效率比引用类型高

  5.值类型不能被继承,而引用类型可以

  6.值类型不能为null,自动初始化为0,而引用类型默认为null

二.结构和类的区别

  1.结构是值类型,而类是引用类型

  2.结构不能从另外一个结构或类继承,并且不能被继承

  3.结构没有默认的构造函数,但是可以手动添加构造函数,类有默认的构造函数

  4.结构没有析构结构,而类有析构函数

  5.结构可以不使用new关键字,而类必须使用new关键字

三.泛型集合与非泛型集合的异同

  1.泛型集合可以对所保存的元素进行类型约束,而非泛型集合可以增加任何类型的元素

  2.泛型集合添加读取值类型元素时无需装箱和拆箱,而非泛型集合添加读取值类型元素时则需要装箱和拆箱

四.构造函数的特点

  1.方法名称与类名相同

  2.没有返回值类型

  3.主要完成对象的初始化工作

五.构造函数与析构函数的区别       1.构造函数和析构函数是在类体中说明的两种特殊的成员函数。       2.构造函数的功能是在创建对象时,使用给定的值来将对象初始化。       3.析构函数的功能是用来释放一个对象的。在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WOLFRAM

错觉艺术的巅峰,错觉图形大师M.C. Escher的不可能方块的可能模型

1353
来自专栏余生开发

echarts太阳分布图-饼图来回穿梭

var dom = document.getElementById("container");

1202
来自专栏linux驱动个人学习

高通Audio中ASOC的machine驱动

ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的...

9784
来自专栏我和未来有约会

简练的视图模型 ViewModel

patterns & practices Developer Center 发布了 Unity Application Block 1.2 for Silver...

2189
来自专栏搞前端的李蚊子

Html5模拟通讯录人员排序(sen.js)

// JavaScript Document  var PY_Json_Str = ""; var PY_Str_1 = ""; var PY_Str_...

5966
来自专栏Ryan Miao

ehcache报错

jfinal2.0+tomcat7+ehcache2.6.11+Linux Linux version 2.6.18-164.el5 (mockbuild@x8...

3729
来自专栏MelonTeam专栏

Bitmap 源码阅读笔记

导语: Android 系统上的图片的处理,跟Bitmap 这个类脱不了关系,我们有必要去深入阅读里面的源码,以便在工作中能更好的处理Bitmap相关的问题...

2518
来自专栏linux驱动个人学习

高通msm8909耳机调试

1、DTS相应修改: DTS相关代码:kernel/arch/arm/boot/dts/qcom/msm8909-qrd-skuc.dtsi: 1 s...

7575
来自专栏码匠的流水账

聊聊HystrixThreadPool

hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java

781
来自专栏码匠的流水账

java9系列(五)Stack-Walking API

java9新增这个类的目的是提供一个标准API用于访问当前线程栈,之前只有Throwable::getStackTrace、Thread::getStackTr...

421

扫码关注云+社区