.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作为引用类型的有效值,并允许重复元素。

 

 

相关文章
|
17天前
|
安全 C# 开发工具
将 EasySQLite 从 .NET 8 升级到 .NET 9
将 EasySQLite 从 .NET 8 升级到 .NET 9
60 31
|
3月前
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
71 7
|
3月前
|
消息中间件 开发框架 .NET
.NET 8 强大功能 IHostedService 与 BackgroundService 实战
【11月更文挑战第7天】本文介绍了 ASP.NET Core 中的 `IHostedService` 和 `BackgroundService` 接口及其用途。`IHostedService` 定义了 `StartAsync` 和 `StopAsync` 方法,用于在应用启动和停止时执行异步操作,适用于资源初始化和清理等任务。`BackgroundService` 是 `IHostedService` 的抽象实现,简化了后台任务的编写,通过 `ExecuteAsync` 方法实现长时间运行的任务逻辑。文章还提供了创建和注册这两个服务的实战步骤,帮助开发者在实际项目中应用这些功能。
103 0
|
9月前
|
开发框架 网络协议 .NET
深入.net框架
深入.net框架
|
存储 开发框架 IDE
【C#视频】C#与NET
【C#视频】C#与NET
|
存储 JSON 安全
.NET 基础-3
服务端和客户端之间要传送的自定义数据类型
243 0
|
SQL C# 数据库
一起谈.NET技术,.NET远程处理框架详解
  第1章系统总体结构   1.1 总体结构   系统实现需要部署服务器端的远程对象(即一个DbServerLibrary.dll),服务器端要注册通道和该远程对象。客户端要实现一个本地查询的服务器,同时根据SQL解析的结果向各个服务器发送命令,并将结果显示在客户端界面,服务器端可以接受并显示相应的命令。
927 0
.NET简谈委“.NET技术”托链
  说起链表大家都很熟悉,说起委托相信大部分的.NET程序员都也很了解。在平时的开发过程中经常会用到这两种技术,只不过链表在.NET里面已经被封装了,让我们用起来更加的方便就是集合类型Collection。
699 0
|
Web App开发 前端开发 .NET
艾伟:[你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望
anytao.net | 《你必须知道的.NET》网站 | Anytao技术博客  发布日期:2009.05.22 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处。
1165 0
|
Java
艾伟:.NET框架4.0中都有些什么?
.NET 4.0让不同组件之间工作的更好 1. 兼容性一直是个令人很头疼的问题,在.NET 4.0中,在同一个进程中,不同运行时上的组件可以同时运行,我们称之为In process Side by Side。
925 0