4.4.2 空合并操作符让比较不再痛苦
Posted kikyoqiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.4.2 空合并操作符让比较不再痛苦相关的知识,希望对你有一定的参考价值。
class Program { static void Main(string[] args) { Console.ReadKey(); } static int Compare(Product x, Product y) { return PartialComparer.Compare(x.Name, y.Name) ?? PartialComparer.Compare(x.Age, y.Age) ?? PartialComparer.Compare(x.Popularity, y.Popularity) ?? 0; } } public class Product { public string Name { get; set; } public int Age { get; set; } public string Popularity { get; set; } } public static class PartialComparer { public static int? Compare<T>(T first, T second) { return Compare(Comparer<T>.Default, first, second); } public static int? Compare<T>(IComparer<T> compare, T first, T second) { int ret = compare.Compare(first, second); return ret == 0 ? new int?() : ret; } public static int? ReferenceCompare<T>(T first, T second) where T : class { return first == second ? 0 : first == null ? -1 : second == null ? 1 : new int?(); } }
以上是关于4.4.2 空合并操作符让比较不再痛苦的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin空安全 ④ ( 手动空安全管理 | 空合并操作符 ?: | 空合并操作符与 let 函数结合使用 )
Kotlin空安全总结 ( 变量可空性 | 手动空安全管理 | 空安全调用操作符 | 非空断言操作符 | 空合并操作符 | 空指针异常处理 | 先决条件函数判空 )