如果我有所有可能的枚举类型的格,我应该在NotImplementedException()
上扔一个default
吗?
最佳答案
如果您正在寻找一个值,根据定义,该值必须与枚举的值相对应,并且您收到了其他内容,那肯定是无效的参数。
但是现在您必须考虑上下文。
该方法是私有(private)的,只能由您的类库或应用程序的成员访问吗?如果是这样的话,那么这是一个编码错误,应该永远不会发生。断言并失败。
另一方面,如果它是一个公共(public)方法或 protected 方法,并且可以由使用您的库的客户端访问,则您绝对应该抛出一条有意义的消息(最好是众所周知的异常类型)。
重要的是要记住,框架中没有对枚举进行范围检查。我可以指定一个方法需要一个Environment.SpecialFolder类型的参数;但它将接受任何32位整数值。
因此,简而言之,如果您的方法是供公众使用的,则一定可以。如果不用于公共(public)消费,请使用Assert。
关于c# - 在switch语句中的默认情况下引发NotImplementedException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1709894/