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