object转string的四种方式

object转string的四种方式通常 object 到 string 有四种方式 假设有 objectobj obj ToString Convert ToString string obj objasstring 他们都能将 object 对象转换成 string 对象 我就讲讲他们的异同以及在实际中应该使用哪个 前两个方法通常是由别的对象得到 string 对象 它们间的区别只表现在要转换的对象为 null 时

通常object到string有四种方式:(假设有object obj)

obj.ToString,

Convert.ToString,

(string)obj,

obj as string。

他们都能将object对象转换成string对象。我就讲讲他们的异同以及在实际中应该使用哪个。

前两个方法通常是由别的对象得到string对象,它们间的区别只表现在要转换的对象为null时,如果obj为null,调用obj.ToString方法会导致NullReferenceException异常,调用Convert.ToString不会抛出异常而返回一个null。
用强制转换(string)obj要求obj的运行时类型必须是string。如果不是,就会抛出异常。用as方法则会相对平稳,当obj的运行时类型不是string时会返回null而不抛出异常。

所以在通常在我们需要得到某个对象的string表达形式时,我们应该使用ToString和Convert.ToString,这时候你就得根据情形选一个,假如你能保证你的对象不为null,则两个差不多。如果有可能为null,你就应该用Convert.ToString,如果你希望它为null的时候抛出异常,那么当然可以选择.ToString。
如果我们是将一个string对象放在容器(如Session)中,而取出时是object对象,这时我们必须将之转换回string对象,那么我建议使用as或(string)obj强制转换。如果我们用.ToString,那么我们就必须在使用前先检查是否为null,而使用.ToString和 Convert.ToString有可能隐藏错误,比如你可能用一个username标识一个user的名字,即string类型,但可能你会在另一处无意写下Session[“username”]=(另一个对象),于是你在后面取这个值的时候便取到后面的这个值,由于你是用的.ToString,所以仍然会成功运行,只是值已不是你希望的值,于是错误在不知不觉中隐藏过去了。如果你是用的as,这时候你取到的就是null值,如果你是用的 (string)obj强制转换,则会抛出异常。这样我们才能发现这个异常。

总之,我们应该了解它们之间的区别,具体在用时才能选最适合的一个







版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232139.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用SpringBoot上传文件并存储至数据库

    使用SpringBoot上传文件并存储至数据库springboot2.2.1.RELEASE <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><…

    2022年5月20日
    39
  • Spring的IOC和AOP原理

    Spring的IOC和AOP原理Spring的IOC和AOP原理本文讲的是面试之Spring框架IOC和AOP的实现原理,IoC(InversionofControl)(1).IoC(InversionofControl)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所。IoC(InversionofControl)(1).IoC(InversionofControl)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。

    2022年6月22日
    35
  • JMH使用指南[通俗易懂]

    JMH使用指南[通俗易懂]关于JMH,可以直接查看官网地址http://openjdk.java.net/projects/code-tools/jmh/本博客内容来自我正在撰写的新书《Java性能优化(暂定名)》,也欢迎购买经典书《SpringBoot2实战权威指南》1.3JMH1.3.1使用JMH通过手工编写一个性能压测程序有较多的问题不同需要性能比较方法放到一个虚拟机里调用,有可能会互相…

    2022年7月11日
    24
  • 简单网页的制作_html简单网页制作

    简单网页的制作_html简单网页制作前言:虽然现在有很多网页模板可以套用,但是不写代码就永远不能进步!简单介绍:HTML是一种超文本标记语言,简单来说就是用来做网页的,没有别的脚本语言的加持下只能做静态网页。在有其它脚本语言JavaScript(JS)和PHP语言的加持下就可以做动态网页,甚至可以做耗费精力和时间的响应式网站。刚才说的静态网页、动态网页和响应式网站显然都是后话了,到后边还有伪静态网页,这些到后面再讲。HTML编译器:Dreamweaver和WebStorm写一个简单网页可以先用记事本废话不多

    2022年10月13日
    2
  • 各种数据流图实例「建议收藏」

    转载自:https://blog.csdn.net/thisispan/article/details/75723311.某公司的营销系统2.学校的图书管理系统34.

    2022年4月13日
    38
  • 《javascript高级程序设计》笔记:对象数据属性和访问器属性

    《javascript高级程序设计》笔记:对象数据属性和访问器属性

    2022年3月8日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号