NotImplementedException

NotImplementedException

如果我有所有可能的枚举类型的格,我应该在NotImplementedException()上扔一个default吗?

最佳答案

如果您正在寻找一个值,根据定义,该值必须与枚举的值相对应,并且您收到了其他内容,那肯定是无效的参数。

但是现在您必须考虑上下文。

该方法是私有(private)的,只能由您的类库或应用程序的成员访问吗?如果是这样的话,那么这是一个编码错误,应该永远不会发生。断言并失败。

另一方面,如果它是一个公共(public)方法或 protected 方法,并且可以由使用您的库的客户端访问,则您绝对应该抛出一条有意义的消息(最好是众所周知的异常类型)。

重要的是要记住,框架中没有对枚举进行范围检查。我可以指定一个方法需要一个Environment.SpecialFolder类型的参数;但它将接受任何32位整数值。

因此,简而言之,如果您的方法是供公众使用的,则一定可以。如果不用于公共(public)消费,请使用Assert

关于c# - 在switch语句中的默认情况下引发NotImplementedException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1709894/

10-10 03:53