有可能在c#中扩展构造函数吗?

时间:2013-08-01 17:03:28

标签: c# extension-methods

我想知道是否存在现有的类(例如来自Monotouch的UIColor),如果有一种方法可以扩展构造函数。这将使我们更容易使用图书馆。

public static class UIColorExtender
{
    public UIColor(string hex)
    {
        this = ConvertHexToUIColor(hex); // This isn't necessarily the code, just filler.
    }
}

3 个答案:

答案 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)

无法扩展构造函数。您可以继承自己的类并实现自己的,或者如果有问题的类不是只读属性,则创建一个初始化方法以在构造函数之后调用。