为什么此代码返回TRUE:

new Byte() == new Byte()   // returns true

但此代码返回false:

new Byte[0] == new Byte[0] // returns false

推荐答案

因为new Byte()创建的值类型是按值比较的(默认情况下,它将返回byte和值0).new Byte[0]创建数组,这是一种引用类型,并通过引用进行比较(这两个数组实例将具有不同的引用).

详见Value Types and Reference Types篇文章.

.net相关问答推荐

API响应返回null错误. NET MAUI

如何通过在后台预加载流项来优化流迭代的性能?

在`MAUI`应用中使用Android`MediaPlayer`的`prepare`方法只在发布模式下和在物理设备上崩溃

竖线在 PropertyGroup .csproj 文件中的含义

使用 MassTransit、.NET Core 和 RabbitMQ 的设计挑战

代码访问安全是否在任何现实世界中使用?

Gacutil.exe 成功添加程序集,但在资源管理器中无法查看程序集.为什么?

从 byte[] 创建 zip 文件

如何在 C# 中创建表达式树来表示String.Contains("term")?

一种消耗(所有字节)BinaryReader 的优雅方式?

如何 Select 数据表中列的最小值和最大值?

ASP.NET Core (.NET Core) 和 ASP.NET Core (.NET Framework) 的区别

在关闭警告中访问 foreach 变量

自创建数据库以来,支持ApplicationDbContext上下文的模型已更改

获取系统中已安装的应用程序

如何以编程方式删除 WebClient 中的 2 个连接限制

如何向 C# Winforms 中的标签添加提示或工具提示?

在不使用while循环的情况下找到最里面的异常?

使用 C# 将时间跨度值转换为格式hh:mm Am/Pm

判断任意字符串是否为有效文件名的最简单方法