Last active
August 18, 2020 07:22
-
-
Save sakapon/c00fe5960bba2d60d11ddd3c4b1dc74d to your computer and use it in GitHub Desktop.
OperatorsSample/ValueTupleTest.Equals
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using Microsoft.VisualStudio.TestTools.UnitTesting; | |
namespace UnitTest.Structs | |
{ | |
[TestClass] | |
public class ValueTupleTest | |
{ | |
[TestMethod] | |
public void Equals() | |
{ | |
// == および != 演算子が使えます。(C# 7.3 以降) | |
// 内部でフィールド名は無視されます。 | |
var v1 = (x: 3, y: 4); | |
var v2 = (y: 3, x: 4); | |
var ec = EqualityComparer<(int, int)>.Default; | |
Assert.IsFalse(ReferenceEquals(v1, v1)); | |
Assert.IsFalse((object)v1 == (object)v1); // ReferenceEquals と同じ | |
Assert.IsTrue(Equals(v1, v1)); | |
Assert.IsTrue(v1.Equals(v1)); | |
Assert.IsTrue(ec.Equals(v1, v1)); | |
Assert.IsTrue(v1 == v1); | |
Assert.IsFalse(ReferenceEquals(v1, v2)); | |
Assert.IsFalse((object)v1 == (object)v2); | |
Assert.IsTrue(Equals(v1, v2)); | |
Assert.IsTrue(v1.Equals(v2)); | |
Assert.IsTrue(ec.Equals(v1, v2)); | |
Assert.IsTrue(v1 == v2); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment