首页 >后端开发 >C++ >为什么 C# 泛型类型推断在信息足够的情况下会失败?

为什么 C# 泛型类型推断在信息足够的情况下会失败?

Barbara Streisand
Barbara Streisand原创
2025-01-23 09:37:09664浏览

Why Does C# Generic Type Inference Fail with Sufficient Information?

C#泛型类型推断

问题:

在涉及泛型方法的场景中,即使有足够的信息,C#类型推断也无法确定正确的泛型参数。

疑问:

为什么编译器在这种特定情况下难以推断泛型参数?

解答:

C#中的类型推断仅基于传递给泛型方法的参数以及相应形式参数的类型。在推断过程中,不会考虑为泛型类型定义的约束。

在本例中,编译器无法推断类型参数,因为代码将IQuery的实例(即SomeQuery)作为参数传递给Process,但Process本身定义为Process,没有指定约束。

为了解决这个问题,必须在调用Process时显式指定泛型参数,如下所示:

<code class="language-csharp">p.Process<SomeQuery, string>(query);</code>

以上是为什么 C# 泛型类型推断在信息足够的情况下会失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn