5.1DotNet基本类库—-要编程需要知道这些
统一的编程API:NET Framework 类库
5.2基本类型及基本类型转换
任何事物都是对象
任何事物都是object类的子类
一个函数如果需要object参数,则可以代入任意参数
任何对象都有以下方法
ToString() Equals() GetType()
MemberwiseClone()等
常量也是对象
3.ToString()
“Hello”.Length
表达式中的类型转换
当有不同种类的混合运算时
强制类型转换
System.Convert类有以下static方法
ToDouble(..)
ToInt32(…)
ToDateTime(…)
基本类型
关键字含有等价的类
int 即System.Int32
含有一些特殊的属性或方法
int.MaxValue
double.NaN
Double.PositiveInfinity
Double.IsNaN()
数与字符串的转换
int.Parse(string)
int.TryParse(textBox1.Text,out ans)
double.ToString();
ToString(“#0.00”)
5.3几个常用类
Math类
提供了相关的数学方法
Abs()
Sin()Cos() Tan()
Round()四舍五入
Exp()指数 Log()对数
Pow()乘方
Random类
.Next(100) 0到100之间(不含100)
.NextDouble() 0到1之间
Randoum得到的是伪随机数
如果要用更强的随机数,可以使用
System.Security.Cryptography
.RNGCryptoServiceProvider
DateTime及TimeSpan
DateTime是值类型
new DateTime(y,m,d,h,m,s)
.Now
.ToString(“yyyy-MM—dd HH:mm:ss”)
.AddMinutes(5)
.Year,.Month,.Day,.Date
TimeSpan
两个日期相减,可以得到一个TimeSpan
String类
== +[]
.Length .IndexOf .LastIndexOf
.StartWith, .EndsWith
Substring(idx,len)注意第二个参数
.Trim, .TrimEnd, .PadLeft, .Insert .Remove
.Split(‘;’) string.Join
String内容不可改变(immutable)
StringBuilder内容可改变
.Append .Remove .Replace
.Length .ToString
在循环体中用s+=…可能会带来效率问题
5.4数组与集合
声明
int [] a;
int [,] b;
分配空间
a= new int[5];
b= new int[4,5];
集合类
System.Collections命名空间
数组列表 ArrayList
相当于动态数组,实现List
哈希表 Hashtable
相当于键/值得集合表示增加、删除、修改
提示:用于查询时,比线性搜索的效率高,可用于程序的优化
栈和队列 Stack Queue
使用foreach访问数组及集合
foreach(类型 变量 in xxxx)
其中xxx 必须是实现了实现IEnumerable接口或含有GetEnumerator方法的类型
这个方法的原型是IEnumerator GetEnumerator();
返回的是一个接口IEnumerator
Current属性
MoveNext及Reset方法
泛型集合
泛型具有更好的类型检查及性能
System.Collection.Generic名称空间
排序
自己写排序程序
使用SortedXXXX类
使用Array.Sort方法
示例ArraySort.cs
Array.Sort(ary,(a,b)=>a.Length-b.Length)