Convert.ToInt16(somenumber)
和ToInt16(somenumber)
以及(ToInt16)somenumber
什么时候我们必须使用一个而不是另一个?
答案 0 :(得分:4)
somenumber
的类型是什么? Convert.ToXXX
设计用于数据库,您可能不知道要转换的确切类型,只是数据是某种数字。
对于更典型的数字变量转换为不同的大小,转换更好。但是你的演员语法有点偏,它应该是(Int16)somenumber
(没有“To”)。
最后ToInt16(somenumber)
在当前类(及其基类)中查找函数或委托字段ToInt16
,因此不太可能正确编译。
答案 1 :(得分:4)
Convert.Int16()
是System.Convert
中的一种方法(可能)。它有许多从类型转换为Int16
.ToInt16()
可以是为特定类定义的方法,但很可能您只是指的是完全相同的方法。阅读namespaces。
但是如果你有一个名为Unicorn
的类并且它有一个ToInt16()
方法,你显然必须使用它,因为System.Convert
中没有支持Unicorn
的重载}。
答案 2 :(得分:3)
我愿意打赌,这完全是一回事。也许您的意思是Convert.ToInt16(somenumber)
和Int16.Parse(somenumber).
在这种情况下,方法签名为Convert.ToInt16(Object somenumber)
和Int16.Parse(string somenumber)
。
转换内容将object
转换为指定类型,而解析内容将string
解析为指定类型。
答案 3 :(得分:2)
Convert.ToInt16(somenumber)
与其他人一样,是一种可用于将某些类型(例如字符串)转换为Int16
的方法。
ToInt1(somenumber)
我不知道这是什么。
(ToInt16)somenumber
- 没有这样的事情,但是(Int16)somenumber
会强制转换一个具有显式运算符重载的对象,返回Int16
(看看here)< / p>
答案 4 :(得分:0)
从浮点数转换为整数时,有一个重要区别:
Convert.ToInt16
舍入到最接近的整数(例如1.6 - > 2)(Int16)x
截断(例如1.6 - > 1)