C# 中的类型转换(Convert类)

2021-02-22 11:17发布

Convert类


Convert类常用的类型转换方法:

方法说明
Convert.ToInt32()转换为整型(int)
Convert.ToChar()转换为字符型(char)
Convert.ToString()转换为字符串型(string)
Convert.ToDateTime()转换为日期型(datetime)
Convert.ToDouble()转换为双精度浮点型(double)
Conert.ToSingle()转换为单精度浮点型(float)

1、类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型装换
2、如果两个变量不兼容,我们则使用Convert的转换工厂进行转换

使用案例:

           try

                        {                         

                            intValue = Convert.ToInt32(rule.Value);

                        }

                        catch (Exception e) // 转换int不成功就认为是bool

                        {

                            try

                            {

                                boolValue = Convert.ToBoolean(rule.Value);

                            }

                            catch (Exception ex)

                            {

                                isBool = false;

                            }

                        }

C# 中 Convert 与 Parse 区别 ???


下面内容取自百度问答:原文链接

1)对于转换对象,Convert.ToInt32()可以为多种类型(例出数字类型外bool,DateTime等),int.TryParse()和int.Parse()只能是整型字符串类型(即各种整型ToString()之后的形式,不能为浮点型,否则int.Parse()就会出现输入的字符串格式不正确的错误,int.TryParse()也会返回false,输出参数为0),(int)只能是数字类型(例float,int,uint等);

2)对于空值NULL,从运行报错的角度讲,(int)强制转换和int.Parse()都不能接受NULL;Convert.ToInt32()其实是在转换前先做了一个判断,参数如果为NULL,则直接返回0,否则就调用int.Parse()进行转换,int.TryParse()其实是对int.Parse()做了一个异常处理,如果出现异常则返回false,并且将输出参数返回0;
3)针对于浮点型的取舍问题,浮点型只有Convert.ToInt32()和(int)能进行转换,但是也是进行取舍了的,Convert.ToInt32()采取的取舍是进行四舍五入,而(int)则是截取浮点型的整数部分,忽略小数部分,例如Convert.ToInt32(1.499d)和(int)1.499d都返回1,Convert.ToInt32(1.5d)返回2,而(int)1.5d还是返回1;

4)关于溢出,将大的数据类型转换为小的数据类型时Convert.ToInt32()和int.Parse()都会报溢出错误,值对于Int32太大或太小,而(int)不报错,但是返回值为-1。

如此可见,我们在进行数据转换前选择转换方法要谨慎,如果是数字类型可以考虑直接用(int)强制转换,如果是整型字符串类型的,考虑用int.Parse()进行转换,如果不是这两种类型,再考虑用Convert.ToInt32()进行转换。



作者:妳是我改卟了的bug

链接:https://czhenya.blog.csdn.net/article/details/80011765

来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。