在MSDN中,我读过有关EnumConverter的信息:
您永远不应该创建EnumConverter的实例。而是调用TypeDescriptor类的GetConverter方法。有关更多信息,请参阅TypeConverter基类中的示例。
有人知道为什么,对我自己实施的转换器是否属实?
例如,我有GradientColor类和转换器GradientColorConverter。我应该写
new GradientColorConverter().ConvertFrom(colorString)
或
TypeDescriptor.GetConverter(typeof(GradientColor)).ConvertFrom(colorString);
实际上它在两个方面都有效,但哪个更好?
答案 0 :(得分:17)
我认为后者TypeDescriptor.GetConverter(typeof(GradientColor))
因为它允许其他转换器在代码在不同的上下文中运行时添加或扩展类型转换器系统(例如在具有自己的自定义转换器的另一个应用程序中运行自定义控件)。 / p>
答案 1 :(得分:2)
后者。如果更改类型转换器类,则代码仍然有效。解耦很好。