ValueTuple.Equals不返回true

nic*_*tch 2 c# tuples

鉴于文档(https://docs.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");
}
Run Code Online (Sandbox Code Playgroud)

我应该注意哪些警告?

我已经测试了从7.0到7.3的c#版本

Evk*_*Evk 16

您正在阅读非泛型的文档ValueTuple.这个没有字段并且表示"空" ValueTuple,所以当然一​​个空元组总是等于另一个空元组.

在您的示例代码中,您使用的是泛型ValueTuple<T1, T2>,此文档文章与它无关.是相关的Equals方法文档.