CLR笔记:11.字符串

11.1 字符

Char,16位Unicode代码值

两个常量字段,Char.MinValue:定义为'\0';Char.MaxValue:定义为'\uffff';

Char.GetUnicodeCategory()方法,返回字符类型(货币/标点/数学符号等等)

Char与Int32的相互转型:

11.2 字符串

只能是String s = "Jax";,而不能使用new来建立字符串

以上语句,在IL中,并没有newobj,而是ldstr:因为字符串是一个常量,不可更改immutable

可以使用+操作符连接几个字符串,在编译时就会连接,生成一个字符串常量。避免在运行期连接—— 这时候使用StringBuilder

逐字字符串verbatim strings,即@"XXX"

使用String.Compare()或String.Equals()比较字符串

比较前使用ToUpper()而不是ToLower,因为前者性能好于后者

字符串留用,就是一个字符串仓库,一般不用这个技术:System.Intern()

11.3 StringBuilder

StringBuilder内部有一个Char数组的字段,我们操纵的就是这个字段,此外还有一个ToString()方法 ,返回由字符数组组成的字符串。

超过容量就会分配更大的数组,复制字符,使用这个新数组,前一个数组会被垃圾收集

11.5 解析字符串来获取一个对象

静态Parse()方法,获取String参数,返回相应的实例——这是一个工厂

FCL中,所有数值类型/DateTime/TimeSpan都提供了Parse方法,如:

Int32 x = Int32.Parse("123");

时间: 2024-09-30 02:41:15

CLR笔记:11.字符串的相关文章

CLR笔记系文章目录索引

CLR笔记:18.可空值类型 CLR笔记:17.自定义属性 CLR笔记:16.泛型 CLR笔记:15.委托 CLR笔记:14.接口 CLR笔记:13.数组 CLR笔记:12.枚举类型和位标志 CLR笔记:11.字符串 CLR笔记:10.事件 CLR笔记:9.Property CLR笔记:8.方法 CLR笔记:7.常量和字段 CLR笔记:6.类型和成员基础 CLR笔记:5.基元,引用和值类型 CLR笔记:4.类型基础 CLR笔记:3.共享程序集合强命名程序集 CLR笔记:2.生成,打包,部署,管理

操作系统概念学习笔记 11 进程同步(一)

操作系统概念学习笔记 11 进程同步(一) 互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据.维护一致性的问题,即进程同步. 从底层到高级应用,同步机制依次有临界区.信号量.管程.原子事务. 多个进程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关,称之为竞争条件(race condition). 临界区(critical section) 每个进程有一个代码段称为临界区(critical section),在该区中进程可能改变共同变量.更新一个表或写

ruby学习笔记(11)--symbol与hash参数

symbol是啥就不深入的讨论了,只简单说说symbol的好处 ruby内部对于每个对象,都会有一个数字id用来标识并区分,可以用xxx.object_id来查看 puts "0001".object_id puts "0001".object_id puts "0001".object_id puts "0001".object_id 输出结果类似如下: 32088750320887303208871032088690 可以

CLR笔记:7.常量和字段

1.常量 常量是永远不会改变的符号.它的值必须在编译时就确定.编译后,CLR将常量的值保存在Assembly的 元数据中,这意味着常量必须是基元类型. 常量是类型的一部分,总是被当成静态成员,但并不显示声明为static. public const Int32 MaxEntriesList = 100; 当代码引用常量时,CLR在元数据中查找该符号,将提取的常量值嵌入到IL中,所以常量没有地址以及 相应的分配内存,而且不能通过引用传递变量,也就是说,在导入一个外部的DLL时,就已经将其中的常 量

spring学习笔记(11)@AspectJ研磨分析[2]切点表达式函数详解

Spring中的AspectJ切点表达式函数 切点表达式函数就像我们的GPS导航软件.通过切点表达式函数,再配合通配符和逻辑运算符的灵活运用,我们能很好定位到我们需要织入增强的连接点上.经过上面的铺垫,下面来看看Springz中支持的切点表达式函数. 1. 方法切点函数 函数 入参 说明 示例 execution() 方法匹配字符串 满足某一匹配模式的的所有目标类方法连接点 execution(* com.yc.service.*.*(..))在配置service层的事务管理时常用,定位于任意返

API Demos 2.3 学习笔记 (11)-- Views->Date Widgets

更多精彩内容,请点击阅读:<API Demos 2.3 学习笔记> Date Widgets大致可以分为两类,一类是弹出对话框类型的控件,包括DatePickerDialog(日期选择对话框控件)和TimePickerDialog(时间选择对话框控件):另一类就是内嵌类型的控件,包括DatePicker(日期选择窗口控件)和TimePicker(时间选择窗口控件).这些控件广泛应用在需要选择和记录时间信息的场合,例如:谷歌日历. 下面我们简单介绍下这四种控件的调用方法: 1.DatePicke

CLR笔记:18.可空值类型

前言:System.Nullable<T>在FCL中的实现: System.Nullable<T> where T:struct,所以Nullable<T>是一个值类型 有两个只读属性HasValue和Value,以及GetValueOrDefault方法 18.1 C#语法:Int32? 等价于 Nullable<Int32>,于是可以有: Int32? a = 5; Int32? b = null; 允许类型转换:Int32 c = (Int32)a;

CLR笔记:16.泛型

泛型:支持值类型和引用类型,不支持枚举. 没有泛型属性. 泛型的好处: 源代码保护.使用泛型算法不需要访问算法的源码--相对于C++模板 类型安全--相对于ArrayList 更加清晰的源码--不需要拆箱,显示转换 更佳的性能--不用装箱.测试:循环1000万次,泛型List<T>与ArrayList分别用时0.1s和 2s 16.1 FCL中的泛型 List<T> 取代ArrayList Directory<TKey, TValue>取代HashTable Stack

CLR笔记:14.接口

CLR以及所有托管语言都不支持多继承,通过接口模拟实现 14.1 类和接口的实现 接口定义:为一组方法签名指定一个名称的方式. 类实现接口,就一定要提供接口所有方法的实现. 即使抽象类,也要全部实现,但是,它可以把接口方法声明为abstract的,从而把这个接口方法留给 派生类去实现,如下: public interface ITest { void Test(); } public abstract class AbstractClass : ITest { public abstract v