铸造和解析之间的区别

pro*_*spk 2 .net parsing casting

我一直在研究一些代码.现在我刚刚使用了关键字as-is而没有真正了解它们.所以这是我的问题

Casting和Parsing有什么区别?

UserAdapter.GetIdAndUserTypeByEmailAndPassword(Email, Password).Rows[0]["UserType"] as String- >这是Casting还是解析?

(String) UserAdapter.GetIdAndUserTypeByEmailAndPassword(Email, Password).Rows[0]["UserType"] - >这是Casting还是解析?

UserAdapter.GetIdAndUserTypeByEmailAndPassword(Email, Password).Rows[0]["UserType"].ToString()
有什么区别bewtween x.ToString()(String) x

Dan*_*dor 11

Casting和Parsing有什么区别?

那些是无关的.

转换正在改变变量的类型.

解析是"检查"字符串并将其逻辑值分配给某个变量.

(附加:嗯,它们在某种意义上是相关的,因为从远处都可以用来'转换'数据,但是,只有在解析的情况下才真正转换数据)

UserAdapter.GetIdAndUserTypeByEmailAndPassword(Email, Password).Rows[0]["UserType"] as String

这是铸造还是解析?

这是一种特殊的类型的转换,如果类型不可转换(看这里),它不会失败,但会得到你null.

(String) UserAdapter.GetIdAndUserTypeByEmailAndPassword(Email, Password).Rows[0]["UserType"]

这是铸造还是解析?

这又是强制转换,但如果表达式不是类型,则抛出异常string.

x.ToString()和(String)x之间有什么区别?

x.ToString() 将尝试在对象x上调用ToString().

(String) x 将尝试将x转换为字符串,如果x不是字符串,则会失败.