2010-10-14 72 views
4

是什么Convert.ToInt16(somenumber)ToInt16(somenumber),也与(ToInt16)somenumberc#为什么Convert.ToInt16(num)vs ToInt16(num)?

之间的区别时,做我们必须使用一个比其他?

+5

什么是'ToInt16(somenumber)'? – Andrey 2010-10-14 17:51:35

+0

Ya ToInt16(somenumber)???不知道 – TalentTuner 2010-10-14 17:53:20

+0

downvoters:请不要解释。(我不在意:) – 2010-10-14 18:08:21

回答

2

Convert.ToInt16(somenumber)正如其他人所说,是一种可用于将某些类型(例如字符串)转换为Int16的方法。

ToInt1(somenumber)我不知道这是什么。

(ToInt16)somenumber - 没有这样的东西,有不过是(Int16)somenumber将投下一个对象有一个明确的运算符重载返回Int16(看看here

+0

Sheket b'vakasha! – 2010-10-14 18:20:31

+0

sababa jenny我会besheket :) – 2010-10-14 18:46:48

4

somenumber是什么类型的? Convert.ToXXX设计用于数据库等,您可能不知道您要转换的确切类型,只是数据是某种数字。

对于更为典型的数值变量转换为不同的大小,转换更好。但是你的演员的语法有点不对,它应该是(Int16)somenumber(不是“To”)。

最后ToInt16(somenumber)在当前类(及其基类)中寻找函数或委托字段ToInt16,所以它不太可能编译正确。

+0

值得注意的是,如果这是VB,可以将静态类作为'Imports'指令包含在内,从而允许您以这种方式访问​​静态函数。 I.E.,如果他在文件顶部有'Imports System.Convert',则可以调用'ToInt16(num)'。 – 2010-10-14 18:18:41

4

Convert.Int16()是一种方法(可能)在System.Convert。它有一些过载从一个类型转换为Int16

.ToInt16()可能是为特定类定义的方法,但很可能你只是指的是完全相同的方法。请阅读namespaces

但是,如果你有一个名为Unicorn类,它有一个ToInt16()方法,你显然将不得不使用,因为在System.Convert无过载,支持Unicorn

+2

'Convert'是一个类,而不是一个名称空间,所以你不能通过'using'将它的成员带入作用域(尽管这个特性多次被请求用于例如'System.Math')。 – 2010-10-14 17:58:39

+0

@Ben Yeah,我刚刚意识到这一点。 – NullUserException 2010-10-14 18:00:14

3

我愿意打赌,是完全一样的东西。也许你的意思是Convert.ToInt16(somenumber)Int16.Parse(somenumber).在这种情况下,方法签名是Convert.ToInt16(Object somenumber)Int16.Parse(string somenumber)

转换东西将object转换为指定的类型,并且解析东西将string解析为指定的类型。

0

当从浮点数转换为整数有一个重要的区别:

  • Convert.ToInt16四舍五入为最接近的整数(例如1.6 - > 2)
  • (Int16)x截短(例如1.6 - > 1)铸造