ASP.NET中的C#基礎知識
說明:asp.net作為一種開發框架現在已經廣為應用,其開發的基礎除了前端的html、css、JavaScript等後端最重要的語言支持還是C#,下面將主要用到的基礎知識做一個總結,方面後面的學習。
一、C#是一種面向對象的變成語言,主要用於開發可以在.net平台上運行的應用程序。是一種強類型語言,一次每個變量都必須具有聲明類型。C#中有兩種數據類型:值類型和引用類型。(其中值類型用於存儲值,引用類型用於存儲實際數據的引用)。
1.值類型
值類型表示實際的數據,存儲在棧堆中。C#中多數基本類型都是數值類型。值類型包括簡單類型、枚舉類型和結構類型。
簡單類型包含數值類型和bool類型。(一般情況下根據需求選擇數值類型。當數值較小時可嘗試選擇byte類型)。
2.引用類型
引用類型表示指向數據的指針或者引用,可存儲實際數據的引用。引用類型為null時表示沒有引用任何對象。引用類型包括接口、類、數組和指針等。其中類中又包含裝箱類型、委托、自定義類。(說明:盡管string是應用類型,但如果用到了相等運算符==或者!=時則表示比較string對象的值)。
3.裝箱和拆箱
簡單的說,裝箱就是從值類型到引用類型的轉換。同樣,拆箱是從引用類型到值類型的轉換。使用拆箱可以像操作簡單類型一樣操作復雜的引用類型,這也是C#強大的功能。
簡單的裝箱和拆箱的實例
class Test { static void Mian() { int i = 3; object a = i;//裝箱 int j = (int)a;//拆箱 } }
說明:在裝箱和拆箱的過程中,任何值類型都可以被當做object引用類型來看。當一個 裝箱操作把一個值類型轉換成一個引用類型時,不需要顯示地強制類型轉換;而拆箱操作把引用類型轉換到值類型時,由於它可以強制轉換到任何可以相容的值類型,所以必須顯示地強制類型轉換。
二、常量和變量
1、常量:也稱為常數,在編譯時已知並運行過程中不變的量,常數被聲明為字段,聲明時在字段的類型前面使用const關鍵字,常量必須在聲明時初始化。常數可標記為public ,private,protected,internal,protected internal這些訪問修飾符定義了用戶訪問該常數的方式。
2、變量:變量的命名規則必須符合標識的命名規則,並且變量名要盡量有意義,以便閱讀。變量是值在程序運行過程中不斷變換的量,通常用來保存程序運行過程中輸入的數據、計算獲得的中間結果和最終結果。
使用變量前必須對其進行聲明,變量可以保存某個給定類型的值。聲明變量時,還需要制定它的名稱。聲明變量的形式:【訪問修飾符 數據類型 變量名稱】。
修飾符的訪問級別:
public :使成員可以從任何位置訪問
protected:使成員可以從聲明它的類及其派生類內部訪問
private: 是成員僅從聲明它的類內部訪問
internal:使成員僅可以從聲明它的程序集內部訪問
三、類型轉換
1、隱式類型轉換
隱式類型轉換是指不需要聲明就能進行的轉換。進行隱式轉換時,編譯器不需要進行檢查就能安全地進行轉換。
說明:從int long ulong float簡單類型轉為float時會出現精度損失。
2、顯式類型轉換
顯式類型轉換也可以稱為是強制類型轉換,它需要在代碼中聲明要轉換的類型。如果在不存在隱式轉換類型之間進行轉換,就需要使用顯式類型轉換。
強制類型轉換可以使用Convert關鍵字進行數據類型的強制轉換。
例如:float f=123.345;
int i=(int)f;
或者:float f=123.345
int i=Convert.ToInt32(f);
說明:由於顯式類型轉換包括所有隱式類型轉換和顯式類型轉換,一次總是可以使用強制類型轉換表達式從任何數值類型轉換為任何其他數值類型。
四、運算符及表達式
C#提供了大量的運算符,這些運算符指定在表達式中執行哪些操作符號。表達式是可以計算且結果為單個值、對象、方法或命名空間的代碼片段。
1、算術運算符和算術表達式
算術運算符包括+ - * / 和%。(過於簡單不在贅述);
2、關系運算符和關系表達式
關系運算符包括:<>!= == <= >=等(各種語言都是相同的);
3、賦值運算符和賦值表達式
賦值運算符用於為變量、屬性、事件或者索引元素賦新值。常用的有:=, +=,-=,*=,/=,^=,%=,<<=(右移賦值),>>=(左移賦值)等。
4、邏輯運算符和邏輯表達式
邏輯運算符包括:&(與操作符),^(異或操作符),!(非操作符),|(或操作符),用邏輯運算符把運算對象連接起來。
5、位運算符
位運算符指將它的操作數看成一個二進制的集合,每個二進制位可以取值0或1。<<左移,>>右移。
6、其他運算符
遞增、遞減運算符:++,--,a--,a++.
條件運算符:?:根據布爾類型表達式的值返回兩個值中的一個。例如:int a=1; int b=2; a!=b?a++:a--;(如果a!=b,該實例返回執行結果為2,否則為1)。
new運算符:用於創建對象和調用構造函數。例如: int i=new int();相當於 int i=0;
as運算符:用於在兼容的引用類型之間執行轉換。例如: string s =someObject as string; as運算符類似於強制轉換,當轉換失敗時,運算符產生空值,而不是引發空值。
7、運算符的優先級
基本>>單目>>乘除>>加減>>移位>>比較>>相等>>位與>>位異或>>位或>>邏輯與>>邏輯或>>條件>>賦值
五、字符串處理
1、比較字符串
String 類提供了一系列的方法用於字符串的比較,如CompareTo和Equals等。
其中CompareTo方法用於比較兩個字符串是否相等。 格式:String.CompareTo(String);返回數值類型
Equals方法用於確定兩個string對象是否具有相同的值。格式:String.Equals(String);返回布爾類型
2、定位及其字符串
定位字符串中的某個字符或紫川第一次出現的位置使用IndexOf方法。格式:String.IndexOf(String);其中的參數表示需要定位的字符串。(注意大小寫的書寫)。
3、格式化字符串
.Net提供了一種靈活全面的方式,能夠將任何數值、枚舉、日期時間等基本數據類型表示為字符串。格式化由格式說明符的字符串表示,該字符串指示如何表示基類型。
格式為:String Format(String,Object);例如:
//格式化為Currency類型
string str1=String.Format("(C)Currency:{0:C}\n",-123.4556f);
//格式化為ShortDate類型
string str2=String.Format("(d)ShortDate:{0:d}\n",DateTime.Now);
4、截取字符串
SubString方法可以從指定字符串中截取子串。格式:String.SubString(Int32,Int32); 第一個參數表示子串的起始位置,第二個參數表示子串的結束位置。
5、分裂字符串
Split()方法可以把一個字符串按照某個分隔符分裂成一系列小的字符串。格式:String []Split(char[]);參數為分割字符串的數組。
string str="hello world"; string[] split=str.Split(new Char[]{'.','!'}); foreach(string s in split) { if(s.Tirm()!='''') { Console.WriteLine(s); } //或者修改為 string []split=str.Split(','.'!');
6、插入和填充字符串
插入字符串:Insert()方法,用於在一個字符串的指定位置插入另外一個字符串,從而構造一個新的字符串。格式:String.Insert(int,String);第一個參數為指定插入的位置。
填充字符串:PadLeft()方法和PadRight()方法添加指定數量的空格實現左右對齊。格式:String PadLeft(int,char)。String PadRight(int Char);
7、刪除和剪切字符串
刪除字符串:Remove()方法用於在一個字符串的指定位置刪除指定的字符。格式:String Remove(int ,int);第一個參數表示刪除的位置,第二個參數表示刪除字符的數量。
剪切字符串:常用的剪切首位的多余字符用到的方法有: Trim(),TrimStart(),TrimEnd();格式如下:
String Trim(Char[]);//從字符串的開頭和結尾處一處空白。
String TrimStart(Char[]);//從字符串的開頭處移除字符串在字符數組中指定的字符。
String TrimEnd(Char[]);//從字符串的結尾處移除字符數組中指定的字符。
8、復制字符串
Copy()方法可以把一個字符串復制到另一個字符串中。格式:String Copy(String);//參數為需要復制的字符串,方法返回目標字符串。
9、替換字符串
Replace()方法可以替換掉一個字符串中的某些特定的字符或者子串。格式:String Replace(string ,string );第一個參數為待替換子串,第二工人參數為替換後的新子串。
六、流程控制
1、分支語句
1>if... else語句
if(布爾表達式)
{ 代碼片段1}
else{ 代碼片段2}
2>switch語句
switch(條件)
{ case 條件1:
break;
'''''
}
2、循環語句
for()循環
while()語句
do while語句
foreach語句
3、異常處理語句
try.....catch語句
try.....finally語句,finally塊用於清除try塊中分配的任何資源,以及運行任何即使在發生異常時也必須執行的代碼。控制總是傳遞給finally塊,與try塊的退出方式無關。
try...catch..finally語句
throw語句,用於立即無條件地引發異常,控制永遠不會到達緊跟在throw後面的語句。
七、數組
數組是從System.Array派生的引用類型。
1、數組的聲明:
一般語法:type[]arrayName;type[,]arrayName;
2、初始化數據(數組初始化的方式很多,可以通過new運算符創建數組元素初始化為它們的默認值)
//舉例 int []arr=new int[6]; int [,]arr=new int[2,3]; int []arr1=new int[3]{1,2,3}; int [,]arr2=new int[3,2]{{2,3},{5,5},{3,5}}; string []arr; arr=new string[3]{"sd","dddd","aaaa"}; int [,]arr; arr=new int[,]{{2,3},{4,5},{4,2}}; //創建數組時可以省略new和數組長度 string[]arr={"ddd","fff","sss"}; int [,]arr3={{2,3},{4,5},{3,2}};
3、數組的遍歷
C#用foreach語句進行遍歷數組,是一種簡單的明了的方法來循環訪問數組中的元素。
int []arr={2,3,6,3,2}; foreach(int i in arr){ system.Console.write({0},i); }
掌握以上的基本知識簡單的asp.net開發後台部分就成功了一部分,學無止境。