【发布时间】:2018-08-28 21:34:27
【问题描述】:
最近对 C# 进行了一些更新,这意味着您可以使用 Enum 作为泛型类型约束,我正在尝试利用这一新功能来制作一些适用于所有枚举的扩展方法。
类似这样的:
public static class EnumToSequenceExtension
{
public static IEnumerable<T> ToSequence<T>(this T e)
where T : Enum
{
foreach (T value in Enum.GetValues(e.GetType()))
{
yield return value;
}
}
}
接下来是我想如何使用这个方法,它现在不能编译,它试图用伪代码描述我想要实现的目标;
IEnumerable<TestEnum> sequence = TestEnum.ToSequence();
TestEnum 是我拥有的枚举类型,例如
public enum TestEnum { Hello, World }
我正在寻找一些简单的工作代码,这些代码使用起来非常简单,给人一种“流畅”的感觉,我的意思是它“读起来很好”。
【问题讨论】:
标签: c# enums extension-methods c#-7.3