switch
この質問は、優れたプログラミング プラクティスと設計上の決定に関するものですが、コンストラクター内を中心にしています。
アイデアは、さまざまな方法でデフォルトの動作を処理することです。デフォルトのコンストラクター ( Const()
) は最も単純な、または最も一般的なケースを処理し、パラメーター化されたコンストラクター ( Const(int type)
) はswitch
他の特定のケースを列挙するために使用します。
いくつかのコードを保存するために、たとえばcase: 0
でデフォルト コンストラクターを定義し、次のように基本コンストラクターからそれを参照することがConst() { this(0); }
できます (コンパイラーは 1 つだけを要求するため、それ以外の方法では実行できませんでした (つまり、スイッチ ケースから基本コンストラクターを参照します)。最初のステートメントとして別のコンストラクターへの 1 つの参照)。
default:
しかし、パラメータ化されたコンストラクターでケースを送信してcase: 0
(「無効なケースです。代わりにデフォルトのケース (0) を使用しています。」などのエラー メッセージと組み合わせて)、またはその逆を送信して、誤った入力を処理できるようにしたいと考えています。 .
ここで他の質問を検索して読みました(たとえば、これとあれを参照してください)。ある種のツイストスイッチフォールスルースキームでどこでそれを実行できるかを見ることができましたが、セマンティクスと明確さのために、私は維持したいと思います最初にデフォルトのケース、または一方で、コンストラクター (this.Const(default)
またはソートなど) を介してデフォルトのステートメントを参照することは可能ですか? もしそうなら、この問題に対する哲学的に最善のアプローチは何ですか?