我制作了自定义界面系统,它使用基本的 UI 控件,如按钮、标签等。有些控件有很多选项,所以它们使用长构造函数,它们只有一两个参数不同。这是正在进行的工作,所以我对可选参数进行了很多更改,并且将更改应用于所有构造函数需要相当长的时间。
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内联实例,我不想失去这种能力。