ASP.NET中的C#基礎(chǔ)知識(shí)
說明:asp.net作為一種開發(fā)框架現(xiàn)在已經(jīng)廣為應(yīng)用,其開發(fā)的基礎(chǔ)除了前端的html、css、JavaScript等后端最重要的語言支持還是C#,下面將主要用到的基礎(chǔ)知識(shí)做一個(gè)總結(jié),方面后面的學(xué)習(xí)。
一、C#是一種面向?qū)ο蟮木幊陶Z言,主要用于開發(fā)可以在.net平臺(tái)上運(yùn)行的應(yīng)用程序。是一種強(qiáng)類型語言,因此每個(gè)變量都必須具有聲明類型。C#中有兩種數(shù)據(jù)類型:值類型和引用類型。(其中值類型用于存儲(chǔ)值,引用類型用于存儲(chǔ)實(shí)際數(shù)據(jù)的引用)。
1.值類型
值類型表示實(shí)際的數(shù)據(jù),存儲(chǔ)在棧堆中。C#中多數(shù)基本類型都是數(shù)值類型。值類型包括簡(jiǎn)單類型、枚舉類型和結(jié)構(gòu)類型。
簡(jiǎn)單類型包含數(shù)值類型和bool類型。(一般情況下根據(jù)需求選擇數(shù)值類型。當(dāng)數(shù)值較小時(shí)可嘗試選擇byte類型)。
2.引用類型
引用類型表示指向數(shù)據(jù)的指針或者引用,可存儲(chǔ)實(shí)際數(shù)據(jù)的引用。引用類型為null時(shí)表示沒有引用任何對(duì)象。引用類型包括接口、類、數(shù)組和指針等。其中類中又包含裝箱類型、委托、自定義類。(說明:盡管string是應(yīng)用類型,但如果用到了相等運(yùn)算符==或者!=時(shí)則表示比較string對(duì)象的值)。
3.裝箱和拆箱
簡(jiǎn)單的說,裝箱就是從值類型到引用類型的轉(zhuǎn)換。同樣,拆箱是從引用類型到值類型的轉(zhuǎn)換。使用拆箱可以像操作簡(jiǎn)單類型一樣操作復(fù)雜的引用類型,這也是C#強(qiáng)大的功能。
簡(jiǎn)單的裝箱和拆箱的實(shí)例
class Test { static void Mian() { int i = 3; object a = i;//裝箱 int j = (int)a;//拆箱 } }
說明:在裝箱和拆箱的過程中,任何值類型都可以被當(dāng)做object引用類型來看。當(dāng)一個(gè) 裝箱操作把一個(gè)值類型轉(zhuǎn)換成一個(gè)引用類型時(shí),不需要顯示地強(qiáng)制類型轉(zhuǎn)換;而拆箱操作把引用類型轉(zhuǎn)換到值類型時(shí),由于它可以強(qiáng)制轉(zhuǎn)換到任何可以相容的值類型,所以必須顯示地強(qiáng)制類型轉(zhuǎn)換。
二、常量和變量
1、常量:也稱為常數(shù),在編譯時(shí)已知并運(yùn)行過程中不變的量,常數(shù)被聲明為字段,聲明時(shí)在字段的類型前面使用const關(guān)鍵字,常量必須在聲明時(shí)初始化。常數(shù)可標(biāo)記為public ,private,protected,internal,protected internal這些訪問修飾符定義了用戶訪問該常數(shù)的方式。
2、變量:變量的命名規(guī)則必須符合標(biāo)識(shí)的命名規(guī)則,并且變量名要盡量有意義,以便閱讀。變量是值在程序運(yùn)行過程中不斷變換的量,通常用來保存程序運(yùn)行過程中輸入的數(shù)據(jù)、計(jì)算獲得的中間結(jié)果和最終結(jié)果。
使用變量前必須對(duì)其進(jìn)行聲明,變量可以保存某個(gè)給定類型的值。聲明變量時(shí),還需要制定它的名稱。聲明變量的形式:【訪問修飾符 數(shù)據(jù)類型 變量名稱】。
修飾符的訪問級(jí)別:
public :使成員可以從任何位置訪問
protected:使成員可以從聲明它的類及其派生類內(nèi)部訪問
private: 是成員僅從聲明它的類內(nèi)部訪問
internal:使成員僅可以從聲明它的程序集內(nèi)部訪問
三、類型轉(zhuǎn)換
1、隱式類型轉(zhuǎn)換
隱式類型轉(zhuǎn)換是指不需要聲明就能進(jìn)行的轉(zhuǎn)換。進(jìn)行隱式轉(zhuǎn)換時(shí),編譯器不需要進(jìn)行檢查就能安全地進(jìn)行轉(zhuǎn)換。
隱式類型轉(zhuǎn)換表 | |
源類型 | 目標(biāo)類型 |
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簡(jiǎn)單類型轉(zhuǎn)為float時(shí)會(huì)出現(xiàn)精度損失。
2、顯式類型轉(zhuǎn)換
顯式類型轉(zhuǎn)換也可以稱為是強(qiáng)制類型轉(zhuǎn)換,它需要在代碼中聲明要轉(zhuǎn)換的類型。如果在不存在隱式轉(zhuǎn)換類型之間進(jìn)行轉(zhuǎn)換,就需要使用顯式類型轉(zhuǎn)換。
強(qiáng)制類型轉(zhuǎn)換可以使用Convert關(guān)鍵字進(jìn)行數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換。
例如:float f=123.345;
int i=(int)f;
或者:float f=123.345
int i=Convert.ToInt32(f);
說明:由于顯式類型轉(zhuǎn)換包括所有隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換,一次總是可以使用強(qiáng)制類型轉(zhuǎn)換表達(dá)式從任何數(shù)值類型轉(zhuǎn)換為任何其他數(shù)值類型。
四、運(yùn)算符及表達(dá)式
C#提供了大量的運(yùn)算符,這些運(yùn)算符指定在表達(dá)式中執(zhí)行哪些操作符號(hào)。表達(dá)式是可以計(jì)算且結(jié)果為單個(gè)值、對(duì)象、方法或命名空間的代碼片段。
1、算術(shù)運(yùn)算符和算術(shù)表達(dá)式
算術(shù)運(yùn)算符包括+ - * / 和%。(過于簡(jiǎn)單不在贅述);
2、關(guān)系運(yùn)算符和關(guān)系表達(dá)式
關(guān)系運(yùn)算符包括:<>!= == <= >=等(各種語言都是相同的);
3、賦值運(yùn)算符和賦值表達(dá)式
賦值運(yùn)算符用于為變量、屬性、事件或者索引元素賦新值。常用的有:=, +=,-=,*=,/=,^=,%=,<<=(右移賦值),>>=(左移賦值)等。
4、邏輯運(yùn)算符和邏輯表達(dá)式
邏輯運(yùn)算符包括:&(與操作符),^(異或操作符),!(非操作符),|(或操作符),用邏輯運(yùn)算符把運(yùn)算對(duì)象連接起來。
5、位運(yùn)算符
位運(yùn)算符指將它的操作數(shù)看成一個(gè)二進(jìn)制的集合,每個(gè)二進(jìn)制位可以取值0或1。<<左移,>>右移。
6、其他運(yùn)算符
遞增、遞減運(yùn)算符:++,--,a--,a++.
條件運(yùn)算符:?:根據(jù)布爾類型表達(dá)式的值返回兩個(gè)值中的一個(gè)。例如:int a=1; int b=2; a!=b?a++:a--;(如果a!=b,該實(shí)例返回執(zhí)行結(jié)果為2,否則為1)。
new運(yùn)算符:用于創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù)。例如: int i=new int();相當(dāng)于 int i=0;
as運(yùn)算符:用于在兼容的引用類型之間執(zhí)行轉(zhuǎn)換。例如: string s =someObject as string; as運(yùn)算符類似于強(qiáng)制轉(zhuǎn)換,當(dāng)轉(zhuǎn)換失敗時(shí),運(yùn)算符產(chǎn)生空值,而不是引發(fā)空值。
7、運(yùn)算符的優(yōu)先級(jí)
基本>>單目>>乘除>>加減>>移位>>比較>>相等>>位與>>位異或>>位或>>邏輯與>>邏輯或>>條件>>賦值
五、字符串處理
1、比較字符串
String 類提供了一系列的方法用于字符串的比較,如CompareTo和Equals等。
其中CompareTo方法用于比較兩個(gè)字符串是否相等。 格式:String.CompareTo(String);返回?cái)?shù)值類型
Equals方法用于確定兩個(gè)string對(duì)象是否具有相同的值。格式:String.Equals(String);返回布爾類型
2、定位及其字符串
定位字符串中的某個(gè)字符或紫川第一次出現(xiàn)的位置使用IndexOf方法。格式:String.IndexOf(String);其中的參數(shù)表示需要定位的字符串。(注意大小寫的書寫)。
3、格式化字符串
.Net提供了一種靈活全面的方式,能夠?qū)⑷魏螖?shù)值、枚舉、日期時(shí)間等基本數(shù)據(jù)類型表示為字符串。格式化由格式說明符的字符串表示,該字符串指示如何表示基類型。
格式為: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); 第一個(gè)參數(shù)表示子串的起始位置,第二個(gè)參數(shù)表示子串的結(jié)束位置。
5、分裂字符串
Split()方法可以把一個(gè)字符串按照某個(gè)分隔符分裂成一系列小的字符串。格式:String []Split(char[]);參數(shù)為分割字符串的數(shù)組。
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()方法,用于在一個(gè)字符串的指定位置插入另外一個(gè)字符串,從而構(gòu)造一個(gè)新的字符串。格式:String.Insert(int,String);第一個(gè)參數(shù)為指定插入的位置。
填充字符串:PadLeft()方法和PadRight()方法添加指定數(shù)量的空格實(shí)現(xiàn)左右對(duì)齊。格式:String PadLeft(int,char)。String PadRight(int Char);
7、刪除和剪切字符串
刪除字符串:Remove()方法用于在一個(gè)字符串的指定位置刪除指定的字符。格式:String Remove(int ,int);第一個(gè)參數(shù)表示刪除的位置,第二個(gè)參數(shù)表示刪除字符的數(shù)量。
剪切字符串:常用的剪切首位的多余字符用到的方法有: Trim(),TrimStart(),TrimEnd();格式如下:
String Trim(Char[]);//從字符串的開頭和結(jié)尾處一處空白。 String TrimStart(Char[]);//從字符串的開頭處移除字符串在字符數(shù)組中指定的字符。 String TrimEnd(Char[]);//從字符串的結(jié)尾處移除字符數(shù)組中指定的字符。
8、復(fù)制字符串
Copy()方法可以把一個(gè)字符串復(fù)制到另一個(gè)字符串中。格式:String Copy(String);//參數(shù)為需要復(fù)制的字符串,方法返回目標(biāo)字符串。
9、替換字符串
Replace()方法可以替換掉一個(gè)字符串中的某些特定的字符或者子串。格式:String Replace(string ,string );第一個(gè)參數(shù)為待替換子串,第二工人參數(shù)為替換后的新子串。
六、流程控制
1、分支語句
1>if... else語句
if(布爾表達(dá)式)
{ 代碼片段1}
else{ 代碼片段2}
2>switch語句
switch(條件)
{ case 條件1:
break;
'''''
}
2、循環(huán)語句
for()循環(huán)
while()語句
do while語句
foreach語句
3、異常處理語句
try.....catch語句
try.....finally語句,finally塊用于清除try塊中分配的任何資源,以及運(yùn)行任何即使在發(fā)生異常時(shí)也必須執(zhí)行的代碼??刂瓶偸莻鬟f給finally塊,與try塊的退出方式無關(guān)。
try...catch..finally語句
throw語句,用于立即無條件地引發(fā)異常,控制永遠(yuǎn)不會(huì)到達(dá)緊跟在throw后面的語句。
七、數(shù)組
數(shù)組是從System.Array派生的引用類型。
1、數(shù)組的聲明:
一般語法:type[]arrayName;type[,]arrayName;
2、初始化數(shù)據(jù)(數(shù)組初始化的方式很多,可以通過new運(yùn)算符創(chuàng)建數(shù)組元素初始化為它們的默認(rèn)值)
//舉例 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}}; //創(chuàng)建數(shù)組時(shí)可以省略new和數(shù)組長(zhǎng)度 string[]arr={"ddd","fff","sss"}; int [,]arr3={{2,3},{4,5},{3,2}};
3、數(shù)組的遍歷
C#用foreach語句進(jìn)行遍歷數(shù)組,是一種簡(jiǎn)單的明了的方法來循環(huán)訪問數(shù)組中的元素。
int []arr={2,3,6,3,2}; foreach(int i in arr){ system.Console.write({0},i); }
掌握以上的基本知識(shí)簡(jiǎn)單的asp.net開發(fā)后臺(tái)部分就成功了一部分,學(xué)無止境。
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
- asp.net(C#)使用QRCode生成圖片中心加Logo或圖像的二維碼實(shí)例
- ASP.NET(C#) Web Api通過文件流下載文件的實(shí)例
- ASP.NET/C#中如何調(diào)用動(dòng)態(tài)鏈接庫DLL
- asp.net中javascript與后臺(tái)c#交互
- asp.net中C#實(shí)現(xiàn)手動(dòng)回收內(nèi)存的方法
- asp.net中c#自定義事件的實(shí)現(xiàn)方法詳解
- asp.net C#實(shí)現(xiàn)解壓縮文件的方法
- asp.net C#檢查URL是否有效的方法
- Asp.Net(C#)自動(dòng)執(zhí)行計(jì)劃任務(wù)的程序?qū)嵗治龇窒?/a>
- asp.net C#生成和解析二維碼的實(shí)例代碼
相關(guān)文章
ASP.NET?MVC5網(wǎng)站開發(fā)用戶登錄、注銷(五)
這篇文章主要介紹了ASP.NET?MVC5?網(wǎng)站開發(fā)中用戶登錄、注銷的實(shí)現(xiàn)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-09-09DataGrid中實(shí)現(xiàn)超鏈接的3種方法
這篇文章介紹了DataGrid中實(shí)現(xiàn)超鏈接的3種方法,有需要的朋友可以參考一下2013-09-09.NET性能優(yōu)化ValueStringBuilder拼接字符串使用實(shí)例
這篇文章主要為大家介紹了.NET性能優(yōu)化ValueStringBuilder拼接字符串的使用實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06asp.net 字符串、二進(jìn)制、編碼數(shù)組轉(zhuǎn)換函數(shù)
字符串和二進(jìn)制數(shù)組轉(zhuǎn)換、將HTML文件顯示為頁面的一部分、UTF8和GB2312之間的轉(zhuǎn)換2010-01-01asp.net mvc4中bootstrap datetimepicker控件的使用
這篇文章主要介紹了asp.net mvc4項(xiàng)目里bootstrap datetimepicker控件的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10asp.net下通過泛解析和偽靜態(tài)實(shí)現(xiàn)二級(jí)域名的實(shí)現(xiàn)方法
當(dāng)我們想做一個(gè)站群或想為每一個(gè)會(huì)員的主頁設(shè)置為一個(gè)二級(jí)域名時(shí),總是想拼命的去找些組件來實(shí)現(xiàn)。2010-10-10DataList 中動(dòng)態(tài)綁定服務(wù)器子控件的代碼
DataList 中動(dòng)態(tài)綁定服務(wù)器子控件的代碼...2007-09-09