ボタンやラベルなどの基本的なUIコントロールを使用するカスタムインターフェイスシステムを作成しました。一部のコントロールには多くのオプションがあるため、長いコンストラクターを使用し、1つまたは2つのパラメーターのみが異なります。そして、これは進行中の作業なので、オプションのパラメーターを頻繁に変更し、すべてのコンストラクターに変更を適用するにはかなりの時間がかかります。
public Button(string Text, Rectangle Rect, Texture2D Texture, bool moreStuff)
public Button(string Text, Point Position, Texture2D Texture, bool moreStuff)
public Button(string Text, Vector2 Position, Texture2D Texture, bool moreStuff)
、dynamicの代わりにキーワードを使用してコンストラクターの数を減らしてみましたが、コンパイル、動作、そして今のところ問題ないようです。しかし、後でこのアプローチを壊す可能性のある何かが欠けているのでしょうか?RectanglePointVector2
をチェックするときに何が渡されたかdynamic Positionを確認するには、スイッチを使用して、認識されたタイプでない場合に.GetType().Name例外をスローします。default:
このようにするのは問題ありませんか、それともより良い(より安全または適切な)方法がありますか?
現在、完全にカスタマイズされたButtonインラインのインスタンスを作成することは可能ですが、その能力を失いたくありません。