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异常,并且性能也不好……

我们来一个测试

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

我们看看后面那个的IL

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

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

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

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

求长度的另一种方法(+obj).Length相关推荐

  1. c语言数组最大可定义多少位_C语言求数组的最大值三种方法

    /* 黄哥Python培训 黄哥所写*/#include int maxValue(int* arr, int n);int maxRecursionValue(int* arr, int n);in ...

  2. c语言实现求最大公约数的三种方法

    一.最大公约数 最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个.a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也 ...

  3. matlab求pi值的三种方法

    https://www.icourse163.org/learn/CSU-1002475002?tid=1450231442#/learn/content?type=detail&id=121 ...

  4. matlab 求矩阵秩,求矩阵秩的两种方法及MATLAB的应用

    摘    要: 高等代数是一门逻辑思维比较强和理论知识比较深的学科, 它具有丰富的数学知识, 涉及许多重要的数学思想, 其在数学领域的应用很广泛, 如行列式.矩阵的相关计算和求解线性方程组的解方面的应 ...

  5. 求伪逆的五种方法比较

    A*x=y当A不可逆如何解x 求伪逆有五种方法,左右同时乘以A','chol()分解,qr() 分解,svd()分解和pinv()求伪逆,下面来比较一下哪个最优秀. 如果A是个355行3列的矩阵,经过 ...

  6. 用C语言求最大公约数的4种方法

    C语言求最大公约数的四种方法如下: 辗转相除法:通过不断地交换两个数,使较大的数除以较小的数,最后得到的余数即为最大公约数. 更相减损术:通过不断地让两个数减去较小的数,最后得到的结果即为最大公约数. ...

  7. 求最大公约数的4种方法

    一.最大公约数与最小公倍数 最大公约数,属于数论所探究的内容. 最大公约数可以通过下面的三种方法求出来. 最小公倍数呢,它与最大公约数的乘机为所求数之积. 比如求 x,y的最大公约数和最小公倍数 记住 ...

  8. Matlab求矩阵的逆(三种方法)

    Matlab求矩阵的逆(三种方法) 说明:若所求矩阵为非奇异矩阵(可逆矩阵),则可以精确求得其逆矩阵:若所求矩阵为奇异矩阵,则所求出的逆矩阵是近似的(不精确). 下面以矩阵A为例. inv()方法 A ...

  9. C语言求最大公约数的三种方法

    最大公约数是两个数可以同时整除的数中最大的那个 这里用三种方法来解决 穷举法求最大公约数 判断x和y的最大公约数,x和y其中一定有一个相对较小的数,然后从这个较小数开始遍历,不断地用x和y去除这个数, ...

最新文章

  1. C++ deque底层实现
  2. 【转载】DL图片预处理
  3. 单元格内多个姓名拆分成一列_excel单元格拆分拆分同一单元格中的姓名,原来这么简单啊!...
  4. slidingmenu阻碍沉浸式实现的原理讲解,demo下载地址在github
  5. php sdk微信,GitHub - swayer/wechat-php-sdk: 微信公众平台 PHP SDK
  6. PowerDesigner生成数据库时的列中文注释乱码问题[mysql]
  7. Selenium2Library+ride学习笔记
  8. Laravel项目迁移步骤
  9. 什么是面向对象_11、面向对象的基本特征是什么
  10. DataTable中的数据导出Excel文件
  11. 第十四章 深度确定性策略梯度(Deep Deterministic Policy Gradient Algorithms,DDPG)-强化学习理论学习与代码实现(强化学习导论第二版)
  12. 《Adobe Flash CS6中文版经典教程》——第1课 Flash CS6快速入门1.1 启动Flash并打开文件...
  13. Windows 强制删除文件及文件夹命令
  14. Nacos连接不上:Ignore the empty nacos configuration and get it based on dataId
  15. 试题 算法提高 盾神与条状项链
  16. GIC/ITS代码分析(1)MADT表
  17. Gem5与NVMain混合编译(一)
  18. 基于Halcon学习的二维码识别【一】micro_qr_simple.hdev
  19. 微信小程序之流星雨个人页
  20. C++实战(一)——选择结构案例:三只小猪称体重

热门文章

  1. 从Jenkins迁移到Jenkins X:一场持续交付之旅\n
  2. 比特,比特流,IP,子网掩码,子网划分,MAC地址
  3. 文件系统的两种文件索引模式extent和blockmap
  4. gradle仓库配置
  5. Hyper-V 2016 系列教程12 Hyper-V 体系结构
  6. DTP模型之二:(XA协议之二)jotm分布式事务实现
  7. oracle重新启动步骤
  8. linux中文乱码的解决
  9. Mybatis系列:解决foreach标签内list为空的问题
  10. swagger error: Conflicting schemaIds: Duplicate schemaIds detected for types A and B