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 条评论
登录 后参与评论

相关文章

来自专栏desperate633

深入理解javascript中的继承机制(4)多继承寄生式继承借用构造函数借用构造函数并且复制原型以上

我们知道多继承是面向对象的语言中比较纠结的一个问题,有好处也存在缺陷。这方面我们不多讨论。就javascript而言,要实现多继承是比较简单的,因为javasc...

771
来自专栏Kevin-ZhangCG

[ Java面试题 ]基础篇之一

2075
来自专栏微服务生态

Scala学习笔记(一)

lazy val forLater = someTimeConsumingOperation()

661
来自专栏个人随笔

反射反射 程序员的快乐

java反射操作其实就是主要围绕Class,Field,Methon,Constructor等几个类来操作其中的方法

4184
来自专栏糊一笑

面试题解法二:逆波兰表达式计算'1 + (5 - 2) * 3'

昨天发了一个面试题:关于一道面试题【字符串 ‘1 + (5 - 2) * 3’,怎么算出结果为10,’eval’除外】,受到了各位大大的指点,用一个比较简单的解...

4317
来自专栏java学习

面试题12(如何正确使用this)

哪些语句能放在如下代码中所示位置,而不会导致编译错误? public class ThisUse{ int plane; static int ...

2593
来自专栏全沾开发(huā)

数组的遍历你都会用了,那Promise版本的呢

2354
来自专栏IMWeb前端团队

JSON Schema 参考书

本文作者:IMWeb 孙世吉 原文出处:IMWeb社区 未经同意,禁止转载 1 简介 JSON 模式(JSON Schema)是一种基于 JSON 格...

32610
来自专栏Java学习123

Java反射教程(二)

35413
来自专栏黑泽君的专栏

c语言基础学习06_函数

============================================================================= 涉及...

2032

扫码关注云+社区