(int) i , i as int 和 i.ToInt32();
(DataTable) dt , dt as DataTable();
为什么不提供ToDataTable()
什么区别,有没有好的例子?
分享到:
------解决方案-------------------- 可以使用 as 运算符执行转换的某些类型在兼容之间的引用类型或 可以为 null 的类型。
(int)i,强制转换,值类型。
http://msdn.microsoft.com/zh-cn/library/cscsdfbt.aspx ------解决方案--------------------
当然不可以。as只能用于引用类型和可为空的类型。可以 i as int?
另外不是很明白楼主 i.ToInt32()这种写法
只用过Convert.ToInt32(),并且Convert只适用于简单数据类型 ------解决方案-------------------- 第一种:(int)i 显示转换,转换失败时会抛出异常;
第二种: i as int 至少目前不存在这种写法,因为 as运算符要求目标类型是可空类型;
第三种: i.ToInt32() 这个ToInt32() 方法是一个扩展方法,至少目前不存在于.Net框架集内。
关于为什么不提供ToDataTable(),知道了第三种的原因,这个也就不难理解了,你可以自己写扩展方法,大概如下:
public static class DataTableExtension
{
public static DataTable ToDataTable(this object dt)
{
return dt as DataTable;
}
}