静态构造函数:
1.一定是静态类才有静态构造函数吗?错的
静态构造函数的特点:
1.静态构造函数没有修饰符修饰(默认修饰符是private,但是不能写出来)
2.静态构造函数是系统默认调用,程序员无法手动调用
3.如果类中没有静态构造函数,而此时类中又包含静态字段(未初始化的),那么此时编译器会默认生成静态构造函数
4.在静态类中或者静态方法中,不能使用实例对象。
5.如果类中包含静态成员,且没有被初始化,系统会默认提供一个默认的值,这也间接的说明了我们不可以直接调用静态构造函数,也没有办法 控制静态函数的执行时间
6.静态构造函数只能被调用一次,并且不能被重载
7.静态构造函数不能有形式参数
8.虽然静态构造和普通构造函数名字一样,参数一样,但是系统规定可以共存。
9.静态构造函数是在普通构造函数之前执行,一般情况下用于初始化静态字段,或者拦截在实例化之前处理某些特定情况,可以在该函数中实现.
用static 修饰的类是静态类
静态类的特点
1.静态类不能被直接实例化
2.静态类不能被继承
3.静态类中不能包含实例成员
4.静态类就是特殊的密封类
5.静态类中虽然不能包含实例成员,但是可以有常量
6.静态类和实例调用方式不一样,普通类是以实例.的方式进行调用,而静态类是以类名.的方式进行调用
7.静态类的访问速度相对而言要比实例类要快得多
8.如果类中包含静态构造函数和函数的入口main函数,此时静态构造函数会在main函数之前调用
9.如果类中包含静态构造函数并不包含入口main函数,此时静态构造函数会在main函数之后调用
字符串的常见API
1.获取字符串长度
public void Test1(){
//无论英文,特殊符号还是中文,长度都是1个字节.
string s = "你好中国xxx,";
Console.WriteLine("字符串长度为:" + s.Length);}
2.字符串中查找字符串
public void Test2(){
//返回-1证明查不到
//如果能查到,返回的是该字符或者字符串在字符串中索引位置
string s = "HFDJasdgajSGDasjgdhagshjdg";
int i = s.IndexOf('F',3,1);
Console.WriteLine (i);}
3. 字符串提取,截取指定范围内的字符串
public void Test3(){
string s = "你好吗,我的母亲中国好棒!";
string temp = s.Substring(0,9);
Console.WriteLine (temp);}
字符串替换
public void Test4(){string s = "淫das,你dsa妈dsa个x,草曹操肏";//这些字符大多都是要被屏蔽的
string newStr = s.Replace("淫","*");Console.WriteLine (newStr);
//分几种:1.亲戚
//string pattern = @"[淫银瘾]|[草曹操肏]|[爹妈姑舅爷]";
//string newStr = Regex.Replace (s, pattern, "*");
//Console.WriteLine (newStr);}////// 字符串插入(指定位置)
///public void Test5(){string s = "你好,中国";
string newStr = s.Insert(0,"china");
Console.WriteLine (newStr);}
////// 判断字符串以什么什么结尾
///public void Test6(){
string s = "你好,中国";bool b = s.EndsWith("中国");
if (b) {Console.WriteLine ("是以中国结束");}}
////// 字符串按照索引位置移除
///public void Test7(){string s = "你好,中国";string newStr = s.Remove(1,1);
Console.WriteLine (newStr);}
////// 字符串拼接
///public void Test8(){string s = "你好";s += "中国";Console.WriteLine (s);}
////// 判断字符串是否相等
///public void Test9(){string s1 = "你好";string s2 = "你好1";
string s3 = "你好2";
//if (s1 == s2) {
//Console.WriteLine ("相等的字符串");
//}
if(string.Equals (s1, s2))
{Console.WriteLine ("字符串s1和s2相等");}}
////// 字符串转换值类型
///public void Test10(){string s = "123.";//int i = int.Parse(s);int result = 0;bool l = int.TryParse (s, out result);
if (l) {Console.WriteLine ("转换成功!~" + result);}
else {throw new Exception ("传入数据包含非法字符,请处理!");}}//抛出一个异常