如何编写将对象包装在可枚举中的通用扩展方法?
How to write a generic extension method which wraps object in an enumerable?
我正在尝试编写一个扩展方法,它接受 T
和 returns IEnumerable<T>
.
类型的对象
这是我的第一次尝试:
internal static class ObjectExtensions<T>
{
public static IEnumerable<T> Yield(this T item)
{
yield return item;
}
}
这个函数有效,但只有当我写 ObjectExtensions<Foo>.Yield(foo)
: foo.Yield()
不解决。
有没有一种方法可以根据输入的类型声明 returns 泛型的扩展方法?
(后来发现Enumerable.Repeat
符合我原来的要求,所以这个问题比较好奇。)
您不需要将 class 指定为泛型,只需指定扩展方法。
internal static class ObjectExtensions
{
public static IEnumerable<T> Yield<T>(this T item)
{
yield return item;
}
}
我正在尝试编写一个扩展方法,它接受 T
和 returns IEnumerable<T>
.
这是我的第一次尝试:
internal static class ObjectExtensions<T>
{
public static IEnumerable<T> Yield(this T item)
{
yield return item;
}
}
这个函数有效,但只有当我写 ObjectExtensions<Foo>.Yield(foo)
: foo.Yield()
不解决。
有没有一种方法可以根据输入的类型声明 returns 泛型的扩展方法?
(后来发现Enumerable.Repeat
符合我原来的要求,所以这个问题比较好奇。)
您不需要将 class 指定为泛型,只需指定扩展方法。
internal static class ObjectExtensions
{
public static IEnumerable<T> Yield<T>(this T item)
{
yield return item;
}
}