这个问题更多的是关于良好的编程实践和设计决策,但它集中在switch
构造函数中。
想法是以各种方式处理默认行为。默认构造函数 ( Const()
) 处理最简单或最常见的情况,参数化构造函数 ( Const(int type)
) 用于switch
枚举其他特定情况。
为了保存一些代码,我可以定义默认构造函数,比如说case: 0
,然后我可以像这样从基本构造函数中引用它:(Const() { this(0); }
否则我不能这样做(即从 switch case 中引用基本构造函数),因为编译器只需要一个一个对另一个构造函数的引用作为第一条语句)。
但我也希望能够处理参数化构造函数中的不正确输入,并将default:
case 发送到case: 0
(可能结合错误消息,如“Invalid case. Using default case (0) instead.”),反之亦然,以使其更健壮.
我在这里搜索并阅读了其他问题(例如,请参阅this和that),并且我可以看到可以使用某种扭曲的开关直通方案在哪里完成,但为了语义和清晰度,我想保留首先是默认情况,或者另一方面,是否可以通过构造函数(例如this.Const(default)
或排序)引用默认语句?可以做到吗?如果可以,从哲学上讲,解决这个问题的最佳方法是什么?