gpt4 book ai didi

c# - 我应该为枚举扩展方法使用 ArgumentException 还是 InvalidEnumArgumentException?

转载 作者:行者123 更新时间:2023-11-30 19:14:45 24 4
gpt4 key购买 nike

我已经看到了针对这两者的建议,但我想确认这是执行此操作的最佳方法:

public enum MO
{
Learn = 0,
   Practice = 1,
   Quiz = 2
}

public static partial class Extensions
{
public static MO ToMode(this string mode)
   {
    switch (mode)
      {
       case "Learn": return MO.Learn;
         case "Practice": return MO.Practice;
         case "Quiz": return MO.Quiz;
         default: throw new InvalidEnumArgumentException("Unhandled value: " + mode.ToString());
      }
    }
}

最佳答案

在这种情况下,我会使用 ArgumentExceptionInvalidEnumArgumentException 的文档 states :

This exception is thrown if you pass an invalid enumeration value to a method or when setting a property.

这不是你在这里做的。您传递的是字符串,而不是枚举。 ArgumentException 的描述 looks更合适:

The exception that is thrown when one of the arguments provided to a method is not valid.

关于c# - 我应该为枚举扩展方法使用 ArgumentException 还是 InvalidEnumArgumentException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55888198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com