ObjectResult的C#扩展方法<t>?</t>

时间:2010-10-22 08:17:33

标签: c# extension-methods

我在Entity Framework中使用存储过程。假设我有这个程序:

    public static int DoSth(decimal id)
    {
        return (int)Adapter.my_proc(id).First();
    }

因为我不想得到First()元素,然后每当我想要一个扩展方法为我做这个时将其转换为(int)(获取第一个元素,然后将其转换为T)。它看起来怎么样?

1 个答案:

答案 0 :(得分:3)

我不确定我明白你的问题是什么。下面是使用ObjectResult<T>的简单扩展方法的代码,获取集合的第一个元素并将其强制转换为T(将该方法放在单独的静态类中)。

public static T Fetch<T>(this ObjectResult<T> result)
{
    return (T)result.First();
}

然后你可以这样称呼它:

public static int DoSth(decimal id)
{
    return Adapter.my_proc(id).Fetch<int>();
}

这就是你在想什么?