예제 11-10 대소문자를 구분하지 않는 구조적 비교 ▶ StructuralComparisons.cs
static void Main()
{
➊
var Ab = ("A", "b");
var aB = ("a", "B");
var aa = ("a", "a");
var ba = ("b", "a");
➋
Compare(Ab, aB);
Compare(aB, aa);
Compare(aB, ba);
}
static void Compare<T>(T x, T y)
where T : IStructuralEquatable, IStructuralComparable
{
➌
var comparison = x.CompareTo(
y, StringComparer.OrdinalIgnoreCase);
var equal = x.Equals(
y, StringComparer.OrdinalIgnoreCase);
Console.WriteLine(
$"{x} and {y} - comparison: {comparison}; equal: {equal}");
}
➊ 가지고 있는 값을 변수 이름으로 사용한 다소 특이한 변수
➋ 흥미로운 비교 수행
➌ 대소문자를 구분하지 않는 비교기를 이용하여 순차성 및 동일성 연산 수행