为什么我不能显式地将一些数据类型(如string,int,byte,float等)转换为?C#

Ler*_*eri 0 c# casting

我知道,当它被允许施放时,不可能施放stringbool喜欢(int)MyString (short)MyBool等等.intshort

不幸的是我找不到解释,为什么.所以我在这里问.

为什么不允许显式转换某些数据类型(我不是问如何将字符串转换为其他类型或类似的东西)?

Nir*_*ngh 6

参考:转换和类型转换(C#编程指南)

显式转换(强制转换):显式转换需要强制转换运算符.如果信息可能在转换中丢失,或者由于其他原因导致转换失败,则需要进行转换.典型示例包括将数字转换为精度较低或范围较小的类型,以及将基类实例转换为派生类.

来自:显式转换

某些编译器需要进行显式转换以支持缩小转换.它是一种特定于语言的执行转换的方法.在某些语言中,如C#和C++,使用强制转换执行显式转换.使用定义要执行的转换类型的数据类型为转换添加前缀时,会发生转换.在Visual Basic中,CType函数用于允许隐式不允许的数据类型的显式转换.