一个泛型类使用expression <T,bool>方法创建泛型扩展

ZhiJun Lin

我的代码如下:

public partial class WhereHelper<T1> { }
public static partial class WhereHelperExtension
{
    public static T Where<T,T1>(this T t, Expression<Func<T1,bool>> where) where T : WhereHelper<T1>
    {
        //do something....
        return t;
    }
}
public class Test
{
    public void Main()
    {
        WhereHelper<DateTime> dt = new WhereHelper<DateTime>();
        dt.Where(t => t.Year == 2016);//this is error
        dt.Where<WhereHelper<DateTime>, DateTime>(t => t.Year == 2016);//this is success
    }
}

扩展方法我想是这样的:

WhereHelper<DateTime> dt = new WhereHelper<DateTime>();
dt.Where(t => t.Year == 2016);//this is error

如何使用Expression方法创建通用扩展。Visual Studio无法识别“ Where”扩展方法。

在C#中,如果需要提供任何通用参数,则必须全部提供它们。where约束不会为类型解析器提供提示,因此无法确定是什么T1

将您的签名更改为以下内容:

public static WhereHelper<T> Where<T>(this WhereHelper<T> t, Expression<Func<T,bool>> where)
{
    return t;
}

在这里,我们完全T从第一个参数中确切知道什么,因此我们不必显式地指定参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

泛型方法 T 扩展

来自分类Dev

Java 泛型:如何扩展另一个泛型类的泛型类

来自分类Dev

用泛型T扩展类

来自分类Dev

返回带有一个泛型参数的Tuple:Tuple <bool,T>

来自分类Dev

泛型与扩展方法

来自分类Dev

使用有界的泛型类扩展另一个泛型类会产生未知类型

来自分类Dev

java泛型-如何实现一个采用HashSet <T>的类?

来自分类Dev

将Comparable <T>与泛型类一起使用

来自分类Dev

如何创建根据 T 不同行为的泛型方法?

来自分类Dev

尽管返回类型已经定义,但泛型方法定义包含<T扩展类>。

来自分类Dev

实现一个非泛型的静态Factory方法,以从字符串输入创建各种泛型类(不使用“动态”类型)

来自分类Dev

Java泛型说明(使用Comparable时,将T约束为一个类型)

来自分类Dev

java泛型T扩展了Simpletype吗?

来自分类Dev

使用泛型Func <T>的异步方法

来自分类Dev

泛型类型的扩展方法

来自分类Dev

泛型类型与扩展方法

来自分类Dev

如何从泛型方法<T>() 返回泛型 List<T>

来自分类Dev

如何创建一个以泛型类为参数的方法

来自分类Dev

创建使用泛型MongoDB的POJO一个包装

来自分类Dev

Java的泛型比较具有可比性<?超级T>从另一个类

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

dotnet Core-需要创建一个通用扩展方法,该方法具有两个泛型,一个是扩展

来自分类Dev

将扩展方法“Move”添加到泛型 List(Of T)”:T 未定义

来自分类Dev

数组和泛型类扩展了另一个类:可以在打字稿中使用吗?

来自分类Dev

如何创建泛型方法

来自分类Dev

用另一个泛型扩展泛型类型

来自分类Dev

如何触发递归更改T类型的泛型类方法?

来自分类Dev

使用泛型和扩展Abstract类

Related 相关文章

  1. 1

    泛型方法 T 扩展

  2. 2

    Java 泛型:如何扩展另一个泛型类的泛型类

  3. 3

    用泛型T扩展类

  4. 4

    返回带有一个泛型参数的Tuple:Tuple <bool,T>

  5. 5

    泛型与扩展方法

  6. 6

    使用有界的泛型类扩展另一个泛型类会产生未知类型

  7. 7

    java泛型-如何实现一个采用HashSet <T>的类?

  8. 8

    将Comparable <T>与泛型类一起使用

  9. 9

    如何创建根据 T 不同行为的泛型方法?

  10. 10

    尽管返回类型已经定义,但泛型方法定义包含<T扩展类>。

  11. 11

    实现一个非泛型的静态Factory方法,以从字符串输入创建各种泛型类(不使用“动态”类型)

  12. 12

    Java泛型说明(使用Comparable时,将T约束为一个类型)

  13. 13

    java泛型T扩展了Simpletype吗?

  14. 14

    使用泛型Func <T>的异步方法

  15. 15

    泛型类型的扩展方法

  16. 16

    泛型类型与扩展方法

  17. 17

    如何从泛型方法<T>() 返回泛型 List<T>

  18. 18

    如何创建一个以泛型类为参数的方法

  19. 19

    创建使用泛型MongoDB的POJO一个包装

  20. 20

    Java的泛型比较具有可比性<?超级T>从另一个类

  21. 21

    C#泛型类作为参数,与泛型类的调用方法具有相同的T

  22. 22

    C#泛型类作为参数,与泛型类的调用方法具有相同的T

  23. 23

    dotnet Core-需要创建一个通用扩展方法,该方法具有两个泛型,一个是扩展

  24. 24

    将扩展方法“Move”添加到泛型 List(Of T)”:T 未定义

  25. 25

    数组和泛型类扩展了另一个类:可以在打字稿中使用吗?

  26. 26

    如何创建泛型方法

  27. 27

    用另一个泛型扩展泛型类型

  28. 28

    如何触发递归更改T类型的泛型类方法?

  29. 29

    使用泛型和扩展Abstract类

热门标签

归档