本文主要介紹了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、隱式類型轉換
隱式類型轉換是指不需要聲明就能進行的轉換。進行隱式轉換時,編譯器不需要進行檢查就能安全地進行轉換。
隱式類型轉換表 |
源類型 |
目標類型 |
sbyte |
short, int long double decimal |
byte |
short,ushort,int uint,ulong,float,double,decimal |
short |
int ,long,float,double,decimal |
ushort |
int ,uint,long ,ulong,float,double,decimal |
int |
long float,double,decimal |
uint |
long ulong float double decimal |
char |
ushort int unit long float double decimal |
float |
double |
ulong |
float double decimal |
long |
float double decimal |
說明:從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提供了一種靈活全面的方式,能夠將任何數值、枚舉、日期時間等基礎資料型別 (Elementary Data Type)表示為字串。格式化由格式說明符的字串表示,該字串指示如何表示基底類型。
格式為: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開發後台部分就成功了一部分,學無止境。