.NET常用类库知识
1.String
1.1.字符串的特性
1.不可变性
由于字符串是不可变的的,每次修改字符串,都是创建了一个单独字符串副本(拷贝了一个字符串副本)。之所以发生改变只是因为指向了一块新的地址。
1.2.字符串池(只针对字符串常量)
当一个程序中有多个相同的字符串常量时,多个变量指向的是内存中同一块字符串!这个特性叫字符串池。之所以字符串,不会造成程序混乱,是因为字符串的不可变性。
1.3 String的成员方法和属性
PS:这里重载方式很多,不一一列举。
1.Contains(String str) 判断字符串中是否包含,指定字符串。
string str ="helloworld";
str.Contains("hello"); //true
2.StartsWith(String str) 判断字符串对象是否以,指定字符串开头。
3.EndWith(String str) 判断字符串对象是否以,指定字符串结尾。
4.Length 属性 获取字符串的长度
5.IndexOf(String str) 获取指定字符/字符串.....在对象字符串中第一次出现的位置。
6.LastIndexOf(String str) 获取指定字符/字符串....在对象字符串中最后一次 出现的位置。
7.SubString(int start)
SubString(int strat, int length) 从指定位置,截取字符串。
8.ToLower() 将串转换成小写,返回一个新的全小写的字符串。
9.ToUpper() 将串转换成大写,返回一个新的全大写的字符串。
10.Replace(string oldStr,string newStr) 用新的字符串,替换对象字符串中老的字符串部分。
11.Trim() 去掉对象字符串两端的空格
TrimStart() 去掉对象字符串 开头的空格
TrimEnd() 去掉对象字符串 结尾的空格
如果想去掉其他的开头结尾的其他字符其他的字符,可以采用Trim()的其他重载。
12.Split() 把对象字符串,按照指定字符分割成一个字符串数组!
Split() 的重载同样很多,
例如 Split(new char[]{'|'}, StringSplitOption.RemoveEmptyEntries)// 删除空数据
1.2.String的静态方法
1.IsNullOrEmpty(string)
//string.IsNullOrEmpty(str1) 判断某字符串是否为null,或者为空字符串。
2.Equals(string,string,StringComparison.OrdianlIgnore)
忽略大小写比较两个字符串是否相同。
3.Join(string,string[])
把一个数组按照指定字符串,拼接成一个字符串。
2.Timer
2.1.介绍Timer控件的常用属性和事件
1.Interval 属性:表示Timer控件的时间间隔。类型是int默认是毫秒。
2.Enabled 属性:表示Timer控件是否激活。如果激活的话,一进入Timer的Tick事件就开始执行,所以默认是false
3.Start() 方法:开始执行
4.Stop() 方法:停止执行
5.Tick 事件:表示Timer控件将要执行的代码。
2.2.常规使用方式
//1.添加一个Timer控件
//2.设置好必要的属性后。直接写 timer_Tick事件。在事件中写个停止条件就好了。
//3.使用Lambda表达式调用Timer
Timer timer = new Timer();
timer.Interval = 100;
//使用Lambda表达式
timer.Tick += (sender,e) =>
{
if (Stop Condition)
{
timer.Stop();
}
};
timer.Start();
3.StringBuilder
3.1.为什么要使用StringBuilder
为什么使用StringBuilder要从string对象的特性说起。
string对象在进行字符串拼接时,因为字符串的不可变性,string对象会每次拼接,都会复制一个副本出来进行运算,而本身的串仍然留在内存中,大量的临时片段会造成不可忽视的性能损耗。所以在进行大量的字符串拼接时建议使用StringBuilder
3.2.StringBuilder的简单使用方式
string s1 = “33”;
string s2 = “44”;
string s3 = “55”;
//
//需求是把 s1 s2 s3拼接在一起。这是一种典型的字符串拼接。
//使用StringBuilder ,不会产生无用的临时字符串。
StringBuilder sb =new StringBuilder();
//拼接方式一
sb.Append(s1);
sb.Append(s2);
sb.Append(s3);
//拼接方式二
//因为Append()方法会返回一个this,也就是对象本身。所以可以使用这种方式。
//链式编程 Jquery中常用这种方式
sb.Append(s1).Append(s2).Append(s3);
//最后把sb.ToString()一下就好了。
//PS:AppendLine()方法可以 自动添加一个回车。
4.DateTime
4.1.DateTime简介
DateTime是.NET中的时间类型,可以通过DateTime完成诸如获取当前的系统时间等操作。
DateTime在.NET中是一个结构体,而并不是一个类。
4.2.DateTime的常用方法和成员
1.Now 获取当前系统时间。
2.Today 获取当前今日日期。
3.年 月 日 时 分 秒
接下来的几个对象,必须通过
DateTime.Now(或者DateTime.Today)再点才能引用的到。
Year 获取年 Hour 获取小时
Month 获取月 Minute 获取分钟
Day 获取日 Second 获取秒
//以Year为例:DataTime.Now.Year
4.DayOfWeek、DayOfYear
获取当前日期是星期几
以及获取当前日期是一年中的第几天
5.TryParse()
判断是否是时间类型,参数中有一个out可以输出一个DateTime对象。
6.AddDays()、AddHours()
在当前时间基础上加几天 返回一个DateTime
在当前日期基础上加几个小时 返回一个DateTime
7.Subtract(DateTime.Now)
比较两个时间的 时间差 返回一个TimeSpan
4.3.日期时间格式字符 ToString()
预定义模式
DateTime date =DateTime.Now;
date.ToString(format)
参数format格式详细用法
格式字符 关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern
自定义模式
d 月中的某一天。一位数的日期没有前导零。
dd 月中的某一天。一位数的日期有一个前导零。
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
dddd 周中某天的完整名称,在 DayNames 中定义。
M 月份数字。一位数的月份没有前导零。
MM 月份数字。一位数的月份有一个前导零。
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。
MMMM 月份的完整名称,在 MonthNames 中定义。
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy 包括纪元的四位数的年份。
gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h 12 小时制的小时。一位数的小时数没有前导零。
hh 12 小时制的小时。一位数的小时数有前导零。
H 24 小时制的小时。一位数的小时数没有前导零。
HH 24 小时制的小时。一位数的小时数有前导零。
m 分钟。一位数的分钟数没有前导零。
mm 分钟。一位数的分钟数有一个前导零。
s 秒。一位数的秒数没有前导零。
ss 秒。一位数的秒数有一个前导零。
5.Exception
.NET中的异常(Exception)