c# - ValueTuple.Equals 不返回 true

标签 c# tuples

鉴于文档中的内容 (https://learn.microsoft.com/en-us/dotnet/api/system.valuetuple.equals?view=netframework-4.7.1),似乎 ValueTuple.Equals 应该始终返回 true

这是否意味着即使元组在其字段中具有不同的值,它也会返回 true?

我正在尝试对其进行测试,但我无法使用以下简单代码点击 Console.Writeline:

if((1,2).Equals((2,1)))
{
    Console.WriteLine("It's true");
}

有什么我应该注意的警告吗?

我已经使用 7.0 到 7.3 的 c# 版本进行了测试

最佳答案

您正在阅读非泛型的文档 ValueTuple .这个没有字段,代表一个“空” ValueTuple ,所以一个空元组当然总是等于另一个空元组。

在您的示例代码中,您使用的是通用 ValueTuple<T1, T2> ,并且本文档文章与其无关。 Here相关Equals方法文档。

关于c# - ValueTuple.Equals 不返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50351862/

相关文章:

c# - 为什么装箱的整数值可以隐式转换为字符串类型?

c# - 使用注释 block 更改实现抽象类模板

java - 如何使用JAVA显式实现接口(interface)成员?

c# - 有没有比忙等待更聪明的方法来检查 System.Net.WebClient.DownloadFileAsync() 的下载完成?

c# - 异步 - 等待直到有人尝试连接

python - 如何检查两个列表的元素组合是否存在于第三个列表中?

python - 从元组中获取一个值

typescript - 使用空元组创建元组的并集,而类型从未出现在 forEach 中

algorithm - 组元组,使得组中的每个项目与其他成​​员不共享共同元素

scala - 为什么在 Scala 中使用元组而不是 Set?