实现泛型的一些注意点

时间:2022-06-27 19:23:40

1. 默认值表达式  : default(T)


2. 直接比较

具体要看参数的约束。

如果参数是未约束的,则可以使用==, !=操作符,但只能与null进行比较, 不能直接比较T的两个值。如果传入的是值类型,则总是不等。如果是引用类型,则会正常比较。如果是可空类型,将会将没有值的视为null.

如果参数是约束成值类型,就完全不能用==, !=。

如果约束未引用类型,将取决于进一步的约束。如果只是约束成一个引用类型,则进行简单的引用比较。如果进一步约束成重载了==, !=的特定类型的派生类,就会使用重载的操作符。