靜態構造函數:
?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 ("傳入數據包含非法字符,請處理!");}}//拋出一個異常