(一)泛型概述 泛型不仅是C#编程语言的一部分,而且与程序集中的IL代码紧密地集成.泛型不仅是C#语言的一种结构,而且是CLR定义的.有了泛型就可以创建独立于被包含类型的类和方法了. 1.性能 泛型的一个主要优点就是性能.对值类型使用非泛型集合类,在把值类型转化为引用类型,和把引用类型转换为值类型时,需要进行装箱和拆箱操作. 下面的例子显示了System.Collections名称空间中的ArrayList类.ArrayList存储对象,Add()方法定义为需要把对象作为参数,所以要装箱一个整数…
  引用类型 和 类 不是一个概念 用typeof来检测属性是否存在 typeof args.name == "string"  需要实验 访问属性的方法 .号和[] 一般情况下要用. 判断是否是数组 Array.isArray( a )  数组变字符串 array.join("||") ; 重排序 reverse sort sort( compare )    function compare(a, b){    if( a > b ) return 1 …
<C#从现象到本质>读书笔记(七)第9章 泛型 泛型的三大好处:类型安全,增强性能(避免装箱和拆箱),代码复用. 泛型方法是传入的参数至少有一个类型为T(尚未制定的类型,根据微软的命名规则,通常以T开头)的方法.T称为类型参数. 它的使用契机一般为:传入类型可能有很多种.但处理方式却相同的情景.这是可以不需要写很多歌重载,而考虑用泛型方法达到代码复用的目的. 同名的泛型方法和非泛型方法会被编译器看做不同的方法.即使都是泛型方法,不同个数的类型参数也会被编译为不同的方法. 泛型约束使得类型参数只…
成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化. 对于方法的局部变量,Java会以编译时报错的形式贯彻这种保证,比如: void f() { int i; //这里编译时就会报错,未初始化 } 但是如果是类的数据成员,情况会有所不同.类的每个基本类型数据成员会保证一个默认初始值,通常为0,布尔型就是false,引用类型会为null. 指定初始化 (1 直接在类里定义时写变量等于多少(这样在C++中是不允许的)如, public class initialV { int a=1…
5.4 控制流  语句(statement)是一条单独的R语句或一组复合语句(包含在花括号{ } 中的一组R语 句,使用分号分隔):  条件(cond)是一条最终被解析为真(TRUE)或假(FALSE)的表达式:  表达式(expr)是一条数值或字符串的求值语句: q    序列(seq)是一个数值或字符串序列. q  5.4.1重复和循环 q  1.for结构  循环重复地执行一个语句,直到某个变量的值不再包含序列seq中为止 q  语法:for(var in seq) statemen…
5.2.1数学函数 函数 描述 abs(x) 绝对值 sqrt(x) 平方根 ceiling(x) 不小于x的最小整数 floor(x) 不大于x的最大整数 trunc(x) 向0的方向截取的X中的整数部分 round(x,digits=n) 将x舍入为指定位的小数 signif(x, digits=n) 将x舍入为指定的有效数字位数 cos(x).sin(x).tan(x) 余弦.正弦和正切 acos(x).asin(x).atan(x) 反余弦.反正弦和反正切 cosh(x).sinh(x)…
基础: 标准I/O库在ANSI C中定义,可移植在不同的系统 文件指针(FILE):标准I/O库操作的不是文件描述符,而是流.FILE文件指针包含的是维护流所需的信息 通过函数fileno获取流的文件描述符 标准输入.输出.出错流:每个进程预定义了三个流.分别用stdin,stdout,stderr表示三个文件指针.STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO表示文件描述符 缓存:标准I/O缓存的目的是尽可能减少read/write函数的调用 全缓存:当缓存被…
  对DOM的两个主要的扩展 Selectors API HTML5  Element Traversal 元素遍历规范 querySelector var body = document.querySelector("body"); var myDiv = document.querySelector("#myDiv"); 取得id为myDiv的元素 var selected = document.querySelector(".selected&quo…
  闭包 有权访问另一个函数作用域中的变量的函数 匿名函数 函数没有名字 少用闭包 由于闭包会携带包含它的函数的作用域,因此会比其它函数占用更多的内存.过度使用闭包可能会导致内存占用过多,我们建议读者只在绝对必要时再考虑使用闭包 模块模式   增强的模块模式   特权方法 有权访问私有变量的公有方法叫做特权方法 块级作用域   实现单例的特权方法  …
  EcmaScript有两种属性 数据属性 和 访问器属性 数据属性有4个特性 Configurable Enumerable Writable Value   前三个值的默认值都为false   举例 Object.defineProperty( person, "name", { writable:false, value:"niko"} ) ;   一旦属性定义为不可配置的,就不能再把它变回可配置的了 读取属性 的特性 var descriptor  = O…