ボタンやラベルなどの基本的な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
の代わりにキーワードを使用してコンストラクターの数を減らしてみましたが、コンパイル、動作、そして今のところ問題ないようです。しかし、後でこのアプローチを壊す可能性のある何かが欠けているのでしょうか?Rectangle
Point
Vector2
をチェックするときに何が渡されたかdynamic Position
を確認するには、スイッチを使用して、認識されたタイプでない場合に.GetType().Name
例外をスローします。default:
このようにするのは問題ありませんか、それともより良い(より安全または適切な)方法がありますか?
現在、完全にカスタマイズされたButton
インラインのインスタンスを作成することは可能ですが、その能力を失いたくありません。