zoukankan      html  css  js  c++  java
  • 求长度的另一种方法(""+obj).Length

        ASP.Net页面绑定时,标题超过20则省略,常规做法:

    Eval("Title")==null?"":(Eval("Title").ToString().Length<=20?Eval("Title").ToString():Eval("Title").ToString().Substring(0,17)+"…")

        我先说结果,看看我们在ASP时代常用的手段:

    (""+Eval("Title")).Length<=20?(""+Eval("Title")):(""+Eval("Title")).Substring(0,17)+"…"

        嗯,我的表达有些糟糕,其实我是想说明一种方法,避免判断null,又能避免ToString的,那就是""+obj

        然后就有同学不同意,觉得这个用法很不好,并且obj不是String时有null异常,并且性能也不好……

        我们来一个测试

    `13a~d_[njq[ndvma`ir{uau7{{jb]%]x]n`k~8k~nhm}3

    这个说明,obj不是String时,并没有null异常。

        我们看看后面那个的IL

    dua~isaw2t9m{h48b(%pc]x

    实际上,编译器处理过了,类似:String.Concat(obj),注意了,这里是一个Object参数的静态方法,不是我们常用的两个参数那个

        再看看这个神秘的String.Concat(Object)

    vo{6qvpsk1f19~}y(e{vehl

    哦,转了一圈,还是回来了!

    结果表明,""+objobj==null?"":obj.ToString()是完全一样的!

  • 相关阅读:
    反转字符串
    数组
    复杂度分析(二)
    复杂度分析(一)
    业务应该这么写--特性
    5种方法快速启动一个应用程序
    业务应该这么写--表达式树
    业务应该这么写--泛型
    业务应该这么写--异常处理
    关于关系型数据库外键,要减轻数据库压力的一些说法
  • 原文地址:https://www.cnblogs.com/nnhy/p/2019751.html
Copyright © 2011-2022 走看看