我是c#的新成员,所以你们中的一些人可能会觉得我的问题很幼稚。
我用的是这个方法:
public static object ChangeType(object value, Type conversionType);来自元数据手册:
返回:一个对象,其类型为conversionType,其值等效于值。-或-A空引用( Visual中为空),如果值为空,而conversionType不是值类型。
但是在方法签名中,返回的类型总是'object‘。所以,如果返回的类型是object,那么转换值的好处是什么?
发布于 2012-07-17 14:51:18
原因是你可以转换成你的特定类型。此方法来自于泛型类型之前,因此它返回任意数量类型中的一种的唯一方法是返回所有泛型类型的超类型,即对象。当然,您可以将其转换为您所选择的类型,并保证您将成功,但唯一的其他选择将是过载的每一个类型,这将是有点沉重。:)
要注意的是,这并不仅仅是演员。它将返回一个全新的对象,这是您所要求的类型,而不是您给它的类型。
发布于 2012-07-17 14:50:27
Convert.ChangeType创建指定类型的新对象,其值相当于您传递的对象。
例如,Convert.ChangeType("42", typeof(int))将返回一个装箱的int实例,而不是一个字符串。
实际行为完全在您传递的对象的IConvertible实现中。
发布于 2012-07-17 14:52:24
另外,
来自msdn文档:http://msdn.microsoft.com/en-us/library/aa324833(v=vs.71).aspx
*
价值 实现IConvertible接口的对象。
*
https://stackoverflow.com/questions/11525123
复制相似问题