zoukankan      html  css  js  c++  java
  • toString()和Convert.toString() 的区别

        看到一个朋友问题,转换字符串的时候报错,无法将类型“string”隐式转换为“decimal?” 他使用.tostring();然后提示他用Convert.toString()来进行转换。

       所以现在来回顾一下toString()和Convert.toString()的区别。此文章是在其他博客上面看到,我觉得很详细,所以转载过来了;原文网址

    http://blog.sina.com.cn/s/blog_677202ad0100kpd5.html

      一、一般用法说明

      在C#中所有继承自object的类都有tostring()方法,在没有特别声明的情况下,C#中的类都是默认继承自object,所以都有tostring()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各基本数据类型,也可以是bool或object类对像;

     二、ToString()和Convert.ToString()的区别

      一般情况下,这两种方法都可以通用,但是当返回的数据类型中有可能出现null值时如果调用tostring方法了,就会返回NullReferenceException,除非你要捕捉此异常再做处理,否则在这种情况下就应考虑使用Convert.ToString()方法了,因为Convert.ToString(null)不会抛出异常而是返回空字符串.

       三、应用举例

      我在这里举一个常见的例子,就是平常的网页参数传递,比如在网页登录验证中从QueryString或当前会话Session中获得对应参数值,我们有下面两种方法:

      1.使用Convert.ToString(param)方法:

      stringstrUserName=Convert.ToString(Session["UserName"]);

      stringstrUserPwd=Convert.ToString(Session["UserPwd"]);

      2.直接调用ToString()方法:

      stringstrUserName=Session["UserName"].ToString;

      stringstrUserPwd=Session["UserPwd"].ToString;

      当Session["UserName"]或Session["UserPwd"]返回null值时,使用方法1返回的值是空字符串,而直接调用ToString()方法则会抛出NullReferenceException,大家可以根据自己的实际需要来决定使用哪一个方法更合适。

    四、补充说明

      一般从object到string有四种方式(比如有objectobj),包括显式转换和as关键词的使用:obj.ToString()、Convert.ToString()、(string)obj、objasstring。他们都能将object对象转换成string对象。这里十万个为什么再接前文重点讲讲他们的异同以及在实际编程中如何选用。

      前两个方法通常是由别的对象得到string对象,它们间的区别如前文所述主要表现在要转换的对象为null时,如果obj为null,调用obj.ToString方法会导致NullReferenceException异常,调用Convert.ToString不会抛出异常而返回一个空字符串。

      用强制转换(string)obj要求obj的运行时类型必须是string。如果不是,就会抛出异常。

      用as方法则会相对平稳,当obj的运行时类型不是string时会返回null而不抛出异常。

      所以在通常在我们需要得到某个对象的string表达形式时,我们应该使用ToString和Convert.ToString,这时候你就得根据情形选一个,假如你能保证你的对象不为null,则两个差不多。如果有可能为null,你就应该用Convert.ToString,如果你希望它为null的时候抛出异常,那么当然可以选择ToString。

  • 相关阅读:
    Working with Deployment Configurations in CodeDeploy
    ECS 容器实例生命周期
    设置 API Gateway 金丝雀版本部署
    Elastic Beanstalk 滚动环境配置更新
    Kinesis Data Firehose 中的数据保护
    为 API Gateway REST API 资源启用 CORS
    高级 AWS Elastic Beanstalk 环境配置
    Amazon SWF Actors
    AWS CloudFormation 模板结构
    字符编码
  • 原文地址:https://www.cnblogs.com/MrLee/p/2500776.html
Copyright © 2011-2022 走看看