.NET基础2

简介: 引用类型有哪些方法比较相等性呢?栈集合和队列集合有啥子区别呢?泛型又有什么东西呢?

带着问题去思考!大家好

引用类型有哪些方法比较相等性呢?栈集合和队列集合有啥子区别呢?泛型又有什么东西呢?

首先关于第一个问题,.NET的引用类型有4种方法比较相等性,其中3个方法继承System.Object基类,另一个就是==运算符。一般System.Object的派生类重写了虚拟的Equals方法,用于比较对象状态值,并同时重写了GetHashCode方法,用于返回标识该类唯一性的散列码

三种方法分别是Equals,静态Equals方法和静态ReferenceEquals方法,由于基类库的类型都派生System.Object类,这三种方法都用来比较对象之间是否指向堆上的相同对象,比较的是引用地址,如果相等返回TRUE,他们直接有什么区别呢?

1)静态的ReferenceEquals方法可接受两个object参数,用于比较两个引用类型的引用类型地址是否相同,结果返回Ture,否则false,如果有一个引用类型为null,则返回false,两个引用类型均为null。则返回true,该方法为静态方法,无法被重写.当然两种值类型变量比较用这个肯定是毫无意义,肯定返回false,而且会装箱2

2)虚拟的Equals方法是实例方法,由实例直接调用,用于比较引用类型的引用地址是否相等,不过其派生类一般将其重写为比较对象的状态值,即基于值的引用

3)静态的Equals方法和虚拟的Equals方法一样,

委托

CLR能够保证委托指向一个有效的方法,不会指向无效地址或者越界地址,

https://www.cnblogs.com/hushzhang/p/5901052.html这篇文章介绍的不错,

泛型容器

在之前高性能里面提到过Stack<T>,但未做详细解说,这里给大家讲解下

首先statck表示对象的简单后进先出(LIFO)非泛型集合,但是实际开发过程中不建议使用,更多的可以用Stack<T>,在高性能集合上面我们也有讲解过。

Stack<T>表示相同类型的实例可变大小的后进先出集合,

使用场景:一般是临时数据,需要同时多个线程访问集合,

注意:当元素添加到Stack<T>时,将根据需要通过重新分配内部数组来自动增加容量,可以通过调用TrimExcess来减少容量。Stack<T>接受null作为引用类型的有效值,并允许重复元素。

 

 

相关文章
|
8月前
|
SQL XML Java
.Net视频总结
.Net视频总结
84 0
|
2月前
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
58 7
|
7月前
|
机器学习/深度学习 物联网 C#
一文带你了解.NET能做什么?
.NET是一个开源(MIT License)、免费、跨平台的开发平台框架,用于生成多种类型的应用程序。.NET 可以运行使用多种语言(C#、Visual Basic、F#)编写的程序,其中C#是最常用的语言。
68 7
|
8月前
|
开发框架 网络协议 .NET
深入.net框架
深入.net框架
|
存储 JSON 安全
.NET 基础-3
服务端和客户端之间要传送的自定义数据类型
241 0
|
SQL C# 数据库
一起谈.NET技术,.NET远程处理框架详解
  第1章系统总体结构   1.1 总体结构   系统实现需要部署服务器端的远程对象(即一个DbServerLibrary.dll),服务器端要注册通道和该远程对象。客户端要实现一个本地查询的服务器,同时根据SQL解析的结果向各个服务器发送命令,并将结果显示在客户端界面,服务器端可以接受并显示相应的命令。
923 0
.NET简谈委“.NET技术”托链
  说起链表大家都很熟悉,说起委托相信大部分的.NET程序员都也很了解。在平时的开发过程中经常会用到这两种技术,只不过链表在.NET里面已经被封装了,让我们用起来更加的方便就是集合类型Collection。
697 0
|
Java
艾伟:.NET框架4.0中都有些什么?
.NET 4.0让不同组件之间工作的更好 1. 兼容性一直是个令人很头疼的问题,在.NET 4.0中,在同一个进程中,不同运行时上的组件可以同时运行,我们称之为In process Side by Side。
922 0
|
Web App开发 前端开发 .NET
艾伟:[你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望
anytao.net | 《你必须知道的.NET》网站 | Anytao技术博客  发布日期:2009.05.22 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处。
1165 0
.NET简谈面“.NET技术”向接口编程
  过程式的开发方式已逐渐退出大众的眼线,随之而来的是各种各样的高抽象的开发模式;我们不得不承认在没有设计模式的时候,我们很难总结出有价值的开发模型,便于以后重复使用和推广;面向对象的流行,让我们开发人员重新站在一个高的起点来看待软件模型,抽象固然是好事,但是也给初学者带来了迷惑,将软件中的东西都想成很简单的封装,我们只需要调用就行,这样越来越多的开发人员开始慢慢的往上浮,有一定编程经验和感触的人,能够明白我所说的浮,也算是给初学者提个醒吧。
926 0