Cal*_*dge 12 .net c# types .net-4.0 type-conversion
System.Convert有一个非常有用的实用程序,用于将数据类型从一种类型转换为另一种类型.在我的项目中,我有很多自定义类型.我想将命令行参数转换为这些自定义类型(其中一些非常复杂).如果这些在System.Convert中存在会很好,所以我可以这样做:
Convert.ToMyCustomType(args[1])
Run Code Online (Sandbox Code Playgroud)
我想在我键入的时候在Visual C#IDE中显示它.我知道我可以简单地创建一个转换类型的例程,但我希望类型转换的处理方式与已经构建到框架中的方式相同.过去有没有人成功做到这一点?
Jon*_*eet 15
不,你不能将它们添加到Convert类中 - 我建议将转换方法添加到实际类型中,例如:
MyCustomType.FromInt32(...)
Run Code Online (Sandbox Code Playgroud)
和实例方法走另一条路:
int x = myCustomType.ToInt32();
Run Code Online (Sandbox Code Playgroud)
(静态工厂方法通常比添加大量重载构造函数IMO更好.它们允许各种替代方法 - 包括在适当的地方返回空值或缓存 - 并且可以使调用代码更清晰.)
我还强烈建议您不要过分关注您提供的转换次数.没有多少自定义类型真正具有来自各种基本类型的单一自然转换.