.NET知道很多转换数据类型的方法:
Convert
- 类; (Try)Parse
和ToString
等类型的函数; IConvertable
; TypeConverter
; 因此,如果要将一种数据类型转换为另一种数据类型,我需要知道这两种类型,并且我需要知道要使用哪种转换方法。如果这两种类型中的一种(或两者)是泛型类型,这就变得非常讨厌。
所以我的问题是:我在.NET中有统一(通用)方式将一种数据类型转换为另一种数据类型,这可能会使用所有其他有限的方法吗?
答案 0 :(得分:2)
在Convert.ChangeType
之间转换类型的一种好的通用方法。以下是如何使用它编写通用转换方法的示例:
public static TResult Convert<TResult>(IConvertible source)
{
return (TResult)System.Convert.ChangeType(source, typeof(TResult));
}
与其他Convert
方法一样,它在内部调用IConvertible
接口。
这不会使用您的其他转换选项:
ToString
;为此,您可以添加一项检查以查看TResult
是否为string
,如果是,(在适当的空检查后),只需在您的输入上调用ToString
。TypeConverterAttribute
(TypeDescriptor.GetConverter
似乎是从那里开始的方式)(Try)Parse
方法,(您调用的)和op_Implicit
和op_Explicit
)如果您对反思有所了解,这些都是相当不言自明的,但我可以详细说明是否有任何困难。
答案 1 :(得分:0)
你暗示那些都是一样的
他们不是
选择合适的
转换类
将基本数据类型转换为另一种基本数据类型。
Parse来自字符串
ToString是一个字符串
IConvertible Interface
定义转换实现引用值的方法 或者类型为具有等效语言的公共语言运行时类型 值。
TypeConverter Class
提供将值类型转换为其他类型的统一方法, 以及访问标准值和子属性。
是的,您需要知道您要转换的类型 您应该知道您要转换的类型。
有了泛型,没有内置。
你最好提供一种方法
但为什么你需要转换泛型?
你似乎暗示不止一种方式是坏事 对于单一的方式,我喜欢Tim S. +1的回答 但这并不意味着我会用它。
从SQL数据库获取数据的方法更多 那是一件坏事?