我制作了自定义界面系统,它使用基本的 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
内联实例,我不想失去这种能力。