V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hoperce
V2EX  ›  问与答

C#其他类型转字符串!

  •  
  •   hoperce · 2012-06-01 09:23:21 +08:00 · 3269 次点击
    这是一个创建于 4347 天前的主题,其中的信息可能已经有所发展或是发生改变。
    加空字符串("") 和 ToString() 和 (string) 有什么区别和代价么?
    6 条回复    1970-01-01 08:00:00 +08:00
    avatasia
        1
    avatasia  
       2012-06-01 09:29:54 +08:00   ❤️ 1
    你是要说string s = 10 + ""; 这样子算加空字符串?还是什么?
    3.5还是4.0之后,int直接支持和string相加, 默认转型了,效率上有点问题。
    ToString()用的比较多, (string)很少用到,不推荐使用。
    里面涉及到装箱拆箱的基础知识,string.format()这个效率最高,具体你可以看看陆敏技的书或者CLR via C#
    acterce
        2
    acterce  
       2012-06-01 12:16:52 +08:00
    呔! 秃驴
    caoyue
        3
    caoyue  
       2012-06-01 12:51:42 +08:00   ❤️ 1
    加空字符串不推荐。虽然同样是由 CLR 自动调用了 Tostring() ,但字符串的操作会生成两个副本等待 GC 回收。
    一般是用 Tostring() 或是 Convert.Tostring() ,区别是 Object 为 Null 的时候前者会异常而后者会返回空字符串。
    强制转换要求对象运行时类型是 string ,否则就会异常,不推荐使用。
    hoperce
        4
    hoperce  
    OP
       2012-06-01 14:05:34 +08:00
    @acterce 额。
    hoperce
        5
    hoperce  
    OP
       2012-06-01 14:08:13 +08:00
    @caoyue 但是ToString()在对象为空的时候会出现异常!Convert.ToString()表示没用过!
    hoperce
        6
    hoperce  
    OP
       2012-06-01 14:10:19 +08:00
    @avatasia 3.5和4.0都有。 string s=object+""这样的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1774 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:46 · PVG 00:46 · LAX 09:46 · JFK 12:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.