约束不是签名的一部分,但参数是签名的一部分。在重载解析过程中会强制执行参数约束。
因此,让我们将约束放入参数中。很难看,但是可以用。
class RequireStruct<T> where T : struct { }class RequireClass<T> where T : class { }static void Foo<T>(T a, RequireStruct<T> ignore = null) where T : struct { } // 1static void Foo<T>(T? a) where T : struct { } // 2static void Foo<T>(T a, RequireClass<T> ignore = null) where T : class { } // 3
(迟到比没有迟到六年吗?)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)