public ColorType ConvertTo <ColorType>() where ColorType : Color3d, new() { if (typeof(ColorType) == GetType()) { return((ColorType)this); } var thisInRgb = ConvertToRgb(); var color = new ColorType(); color.SetFromRgb(thisInRgb.R, thisInRgb.G, thisInRgb.B); return(color); }