C# · 12月 30, 2021

c# – 扩展系统

System.Convert有一个非常有用的实用程序,用于将数据类型从一种类型转换为另一种类型.在我的项目中,我有很多自定义类型.我想将命令行参数转换为这些自定义类型(其中一些非常复杂).这将是很好的,如果这些存在于System.Convert中,所以我可以做这样的事情: Convert.ToMyCustomType(args[1])

我希望这可以在Visual C#IDE中显示.我知道我可以简单地创建一个例程来转换类型,但我希望类型转换的处理方式与框架中已经构建的类型相同.过去曾经有人成功过吗?

解决方法 不,您不能将它们添加到 Convert类中 – 我建议将转换方法添加到您的实际类型中,例如: MyCustomType.FromInt32(…)

和其他方式的实例方法:

int x = myCustomType.ToInt32();

(静态工厂方法通常比添加大量重载的构造函数IMO更好,它们允许各种替代方法,包括在适当的情况下返回一个空值,或者缓存 – 并且可以使调用代码更清晰.

我也强烈建议您不要超出您提供的转化次数.没有多少自定义类型真正具有来自各种基本类型的单一自然转换.