String

char的集合  string name = "John Doe"; 双引号,char是单引号
string是不可变的,一旦初始化后就不能变了,每次对已存在的string操作后,其实是新建了一个新的string,然后把新的值赋给这个变量,旧的值就被framework给清理了

这个 新建 赋值 清理旧值 的过程重复了10000遍,不够智能,推荐使用StringBuilder

使用了StringBuilder 可以用Append方法来扩展string,这个效率应该比那个高一些


string 的运算符
+  连接两个或者多个string (可以先把别的类型ToString后再+)
Format 跟python一样的format形式,不用管原来的数据类型,{ }就行

Length  获取string长度
SubString  获取字串
IndexOf  查找某个字符的第一个索引
Replace  替换
Contains  是否包含某个字符或string
Startswith  以什么开头
Endswith  以什么结尾

\ 转义字符  含义就不说了,宇宙通用
@  如果觉得\ 用的太多了不直观,可以在string 前面整体的加上@符号,这样string 里面是啥就是啥,不会被转义,看下图

Data & Time

默认是 : 日期+时间
格式化的时候m表示分钟,M表示月份

不同地区的文化差异导致的时间显示可以通过设置 System.Globalization.CultureInfo 来解决

Parse  和  TryParse
后者解析的时候不会报错,更加保险


空类型 null

正常的数据类型是不能赋值为null的,  int a = null ;这样是编译器会报错的
方法是在数据类型后面加个问号,  这样这个量就可以被赋值为null (是可以被赋值为null,而不是必须给他赋值为null

赋值为null 后当然可以在给他赋值为新的值
nullable = 123;

和上面的if相比,作了两个判断,有值并且是42,输出It‘s 42!
下面的是GetValueOrDefault 方法,有值就返回值,是null就返回基础类型的默认值(int的默认值是0)比上面的更加简洁使用


var关键字

我们可以在一个变量左边放一个 var 来含蓄的定义它的数据类型

上面的 int 是显式的定义
下面的name是隐式的定义,没有明确说是string 编译器看你给name 赋值的是string,他就把name定义为string
这和显示定义 是一样快的,不用担心有啥效率上的差别

var 只能用在method 里,不能用在class级别里

有时候我们为了简化代码就用了var,或者直接用函数的返回值作为变量的类型(我不用管返回什么类型,我var result = someMethod()就行了)

上图,一个var 让我们少打 了多少键盘字母,您非要说 把上一行复制粘贴修改 我也没办法。。。。

大多数情况下,我们是可以把var 换成某种固定的类型的,但是在匿名类型(anonymous types)里必须得用,这个以后再讲。

最新文章

  1. Windows Installer 服务启动错误 14007 的解决办法
  2. 数据迁移工具sqoop
  3. asp.net运行时错误:没有为扩展名".cshtml"注册的提供程序。
  4. Sass学习之路(2)——Sass环境安装(windows版)
  5. C++中map的一点疑惑...
  6. xtrabackup 增量备份(InnoDB)
  7. hdu 2955 Robberies 0-1背包/概率初始化
  8. 在线最优化求解(Online Optimization)之一:预备篇
  9. 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)
  10. OC内存管理基础
  11. (太强大了) - Linux 性能监控、测试、优化工具
  12. Week13(12月5日):不怕错误,慢慢来 :)
  13. Openjudge-计算概论(A)-放苹果
  14. 6656 Watching the Kangaroo
  15. angular4.0如何引入外部插件2:declare方案
  16. android-基础编程-democoderjoy-架构篇
  17. IAR注释的快捷键
  18. VBA学习笔记(8)--遍历所有文件夹和文件
  19. ThinkPhp3.2.3 多项目 后台 APP接口设计 框架设计
  20. HDU6128 二次剩余/二次域求二次剩余解/LL快速乘法取模

热门文章

  1. 单线程的as-if-serial语义
  2. perl打开本地/服务器图片
  3. Linux学习安装
  4. poj 1038 Bugs Integrated, Inc. 题解
  5. ProBuilder快速原型开发技术 ---ProBuilder基础操作
  6. 前端面试之JavaScript中this的指向【待完善!】
  7. RabbitMq消费者在初始配置之后进行数据消费
  8. 一文打尽 Linux/Windows端口复用实战
  9. On-the-fly Garbage Collection: an Exercise in Cooperation
  10. 订单业务楼层化 view管理器和model管理器进行了model和view的全面封装处理 三端不得不在每个业务入口上线时约定好降级开关,于是代码中充满了各种各样的降级开关字段