我想知道是否存在现有的类(例如来自Monotouch的UIColor),如果有一种方法可以扩展构造函数。这将使我们更容易使用图书馆。
public static class UIColorExtender
{
public UIColor(string hex)
{
this = ConvertHexToUIColor(hex); // This isn't necessarily the code, just filler.
}
}
答案 0 :(得分:4)
不,目前在C#中没有这样的方式。继承自类并使用您自己的构造函数逻辑。使用新类代替旧类。
答案 1 :(得分:1)
也许这个问题试图达到和你一样的目标? UIColor from Hex in Monotouch
在查看UIColor类时,似乎它在使用其他格式时大多使用工厂模式,而不仅仅是R,G,B和alpha的4个浮点值:
UIColor.FromHSB(float, float, float)
UIColor.FromWhiteAlpha(float, float)
..还有更多
所以我认为在上面的问题中,最好的解决方案就像路易斯一样。
答案 2 :(得分:0)
无法扩展构造函数。您可以继承自己的类并实现自己的,或者如果有问题的类不是只读属性,则创建一个初始化方法以在构造函数之后调用。