为了账号安全,请及时绑定邮箱和手机立即绑定

无法获取枚举类型的扩展方法

无法获取枚举类型的扩展方法

C#
牛魔王的故事 2022-12-24 09:47:16
我遇到的问题是创建扩展方法!public enum TestEnum{    One, Two, Three, Four}public static class EnumExtension{   public static bool TestMethod(this TestEnum e)   {       return false;   }}[TestMethod]public void TestAll(){    var result = TestEnum. ;   //this only gives the values of the enum (One, Two, Three, Four), there is no option to call the extension method}我希望上面代码中的注释真的能说明问题——我假设我在做一个巨大的假设并且把它弄错了。然而,我宁愿通过允许任何枚举调用此功能来使其更有用。最终目标是这样的public static IEnumerable<string> ConvertToList(this Enum e){     var result = new List<string>();     foreach (string name in Enum.GetNames(typeof(e)))    //doesn't like e     {         result.Add(name.ToString());     }     return result;}
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

扩展方法不直接作用于类型,而是作用于该类型的值。

所以像

TestEnum Val = TestEnum One;
 var b = Val.TestMethod();


查看完整回答
反对 回复 2022-12-24
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

如果您需要 中所有枚举的列表List<string>,那么您可以尝试类似

List<string> enumList = Enum.GetNames(typeof(TestEnum)).ToList();

这将返回包含的字符串列表

  //"One", "Two", "Three", "Four"

//img1.sycdn.imooc.com//63a65a480001945703780286.jpg

查看完整回答
反对 回复 2022-12-24
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信