亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

.NET基礎串講

2019-11-14 16:12:07
字體:
來源:轉載
供稿:網友

C#基礎

.NET介紹

                       

?計算機發展史

第一代語言:機器語言 0101

第二代語言:匯編語言, 用一些簡潔的英文字母、符號串來替代一個特定指令的二進制串

第三代語言:接近于數學語言或人的自然語言,同時又不依賴于計算機硬件,編出的程序能在所有機器上通用

?編譯運行過程:

C#語言—公共語言規范(CLS)的編譯器—MSIL(中間語言或程序集)

—公共語言運行庫(CLR)中編譯器操作系統執行代碼

 

?兩次編譯過程用途:

第一次是為了將不同語言編譯成中間語言形成程序集;

第二次為了CLR針對不同操作系統做優化。

 

轉義符

改變了字符的原始含義。

引號——/“”換行——/n    水平制表——/t     問號——/?

反斜線——//     加多個反斜線(防止轉義)——@“字符串”

 

格式化字符串

 

變量

程序運行在哪里?

程序處理的是什么?

1、定義

?內存中開辟的一塊用于存儲數據的空間

?可以存放單詞、數值、日期以及屬性。

2、聲明

?變量類型 變量名稱;

?也可以一次聲明多個變量。string str1, str2;

3、命名規則

?有字母、數字和下劃線組成,且不能以數字開頭。

?不能使用保留關鍵字(藍色)。

4、建議命名規則

【望文生義】

?以小寫字母開頭。

?如果包括多個單詞,建議除第一個單詞外其他單詞的首字母大寫。

?增加類型前綴便于理解。

5、變量的賦值

?在使用前必須賦值。

?賦值的數據類型和變量聲明時的類型必須相同

?同一變量名只能聲明一次,但可以多次賦值。

6、數據類型

 

1)整形

 

2)非整型(小數)

?非整形變量賦值要加上后綴,如果不加默認為double

 

3)非數值型

?Char 字符,存儲單個字符,使用單引號。

?Bool類型  可以直接賦值true真false假,或者賦表達式做判斷。

7、占位符

 

運算符

1、算數運算符

      +  —   *  /  %  ++ --

?i++、++i

 

i++,后綴增量操作。表達式結果是操作數增加之前的值,后加:后自增。

++i,前綴。表達式結果是操作數加1之的值,先加:先自增。

2、比較運算符

     ? >  <  >=  <=  ==  !=

3、邏輯運算符

?&&——與   一假俱假   相當于“并且”  都得是真的

?||——或   一真俱真   相當于“或者”  有一個是真的就行

?!——非   原來是真,非后為假

4、快捷運算符

      += -= *= /= %=

 

數據類型轉換

變量聲明后,類型固定了,只能賦值某種類型的數值,如果要賦值其他類型的值需要轉換類型。

1、隱式轉換(數值類型間轉換):由小范圍(空間)到大范圍的數值類型轉換。不會失敗,不會丟失精度,一般發生在數值類型間。

2、顯式轉換(強制轉換):(數值類型間轉換)存在風險,由程序員決定是非轉換。還可能會丟失精度。

    語法: 新類型 名稱=(待轉類型名)名稱

 

 

 

.NET默認不檢測強制轉換錯誤,使用checked代碼塊可以檢測強制轉換錯誤。

3、parse(轉出)將字符串轉換對應的類型:內置的數據類型都提供了parse方法,用來實現字符串和對應類型的轉換。

int a=int.Parse(“1”); 

Double d=double.Parse(“1”);

4ToString(轉入)從其他類型到字符串:

 

5、Convert轉換:任意兩種類型之間的轉換 int i2 = Convert.ToInt32("9");

 

常量

?內容不發生變化的值

?使用const聲明; 如:

?建議命名全部大寫以區分

 

方法

1、定義:方法就是對一系列語句的命名,表示一個行為或功能。

2、作用:代碼的重用,實現模塊式開發

3、語法

如Public、PRivate             聲明靜態:static     /*給一個參數返回一個結果值*/

 

 

 

訪問級別 [可選修飾符] 返回類型 方法名稱(參數類型 參數名稱)

{

//方法體

Return 結果;

}

無返回值聲明為void              參數列表

4、調用語句:方法名稱(參數)

5、返回值:理解為方法的結果

?void代表無返回值。

?如果方法有返回值,方法體中必須有return語句;沒有返回值,有沒有都可以。

?Return關鍵字后必須返回相同類型的數據。

?Return后面的語句不再執行。

?調用方法時,如果需要結果,聲明相應類型變量接收返回值數據。

6、參數列表:方法設計者需要調用者傳遞的信息

?定義方法時叫形參

?調用方法是叫實參

?實參與形參要一一對應

?確定參數的原則:自己能確定的數據自己內部解決,自己確定不了的數據通過參數傳遞。

7、方法盡可能小,以便完成一個獨立的工作。

8、可以調用同一個類或者其他類中的方法;內部也可以調用其他方法。

 

參數

1、值參數

?方法默認值傳遞,傳遞的是變量的副本。

?值類型參數傳遞給方法時,傳遞的是數據的副本而不是數據本身。

?方法內部對形式參數的修改,不會影響方法外的實際參數。

 

2、引用參數

?將引用類型的對象傳遞給方法時,引用類型的變量不直接包含其數據;它包含的是對其數據的引用(地址),即引用指向原始對象而不是副本。ref是關鍵字。

?方法內修改形式參數,會影響實際參數。

?在方法中修改外面已有變量時使用,更側重于改變一個。

 

/*添加了ref,兩個參數就一致了。*/

3、輸出參數

?Out關鍵字會導致參數通過引用來傳遞。這與ref關鍵字類似。若要使用out參數,方法定義和調用方法都必須使用out關鍵字。

?側重于輸出一個值。

4、區別

Ref要求變量必須在傳遞前進行初始化(賦初值)。而作為out參數傳遞的變量不必在傳遞之前進行初始化,但是在離開方法之前,必須為變量賦值,有賦值操作。

5、用途

方法需要返回多個值時使用。

TryParse

?通過Bool表達式配合TryParse使用,防止類型轉換失敗。

?語法:    TryParse(待轉字符串,out 轉出的變量名)

 

方法重載

?方法簽名:方法的訪問級別、可選修飾符 、返回值、名稱和任何方法參數,統稱為方法的“簽名”。

?方法重載:在同一個作用域中,兩個方法的名稱相同,參數列表(個數、類型)不同稱為方法重載(OverLoad)。用來解決同一類型的問題。[out與ref的區別不可以構成]

?作用:減少記憶量,方便使用,便于理解

選擇語句

If語句

If(bool表達式)

{

//表達式為真,執行

}

else

{

//表達式為假執行

}

?C#規定,每個else部分分總屬于前面最近的那個缺少對應的else部分的if語句。

?注意:Else可有可無;

單行語句可以不寫{},但是提倡單行也要寫;

If條件后不能加分號;

 

 

 

 

 

 

Switch-case語句

?多路判斷語句

?計算條件表達式并對照多個常數值進行檢查

1、注意

?Break不能少

?Switch()中的變量可以是int、string、bool、char、枚舉類型,

但必須有一個定值。

?每個case標簽后是常量表達式的值,不必連續,也不必按特定

順序排列,但不能相同,否則會出現錯誤。

?每個case標簽之后的語句數不限,有多個語句,也可以不用{}。

?default標簽可選。意思是其余的結果。

2、區別

?相同點:都可以用來實現多路分支。

?不同點

多重if結構用來實現兩路、三路分支比較方便,Switch結構實現三路以上分支比較方便。

If結構用來判斷一個值是否在某個區間的情況,在使用switch時,case語句后面必須是常量表達式

循環語句

For語句

要求只在對特點條件進行判斷后才允許執行循環,用于將某個語句或語句塊重復執行預定次數的情形。

For(初始值;條件;增減變量)

{

&hellip;………z

}

?首先賦初值,只執行一次。

?判斷條件表達式是否滿足,如果是執行{}內語句,如果不是,退出循環。

?每次執行完循環體內的語句都要執行增減變量。

?break用于退出循環

?continue用于跳出當前循環并開始本for的下一次循環。

?可以有死循環for(;;)

例子:

 

 

 

 

While語句

While(條件true)

{

//退出條件

//語句

}

?執行一個語句或語句塊,直到指定的表達式計算為false退出循環。

?先判斷表達式是否滿足條件,是,執行語句;否,退出。

?大多數情況下,while語句可以和for語句互換,while常用語計算次數不確定的情形。

 

Do While語句

Do

{

//循環體

}

While(條件)

?重復執行{}內的語句,直到指定的表達式為false退出。

?與while區別:循環體至少執行一次。

循環嵌套

 

例子:正三角

 

例子:倒三角                                           正三角:

 

 

 

 

 

 

 

 

 

 

 

 

例子:乘法表

 

數組

?定義:存放一組類型相同的變量,是一種空間連續的數據結構。

?這些變量都可以通過計算索引(位置)進行訪問。

數組屬性

?數組的索引從零開始,具有n個元素(變量)的數組的索引時從0到n-1(因為從0開始).

?數組元素可以使任何類型,包括數組類型(數組嵌套)。

?數組類型是從抽象基類型Array派生的引用類型。

?可以對c#中的所有數組使用foreach遍歷。

數組類型

一維數組

多維數組(有行還有列或者高)

交錯數組

聲明賦值數組的語法

 

 

 

 

 

 

 

 

●數組聲明后必須賦值才能使用。

●訪問數組,通過索引,使用for、foreach循環遍歷。

●For循環可以讀取、設置元素值,不必訪問所有元素。

●循環遍歷的方法:foreach和for

  Foreach循環,不能對元素賦值,按順序依次遍歷,不能跳躍,拿不到索引。

 

數組常用方法及屬性

1、 Length 長度

獲取32位整數,該整數表示Array的所有維數中元素的總值。

語法:數組名稱.Length

 

2、 Rank 維度

獲取Array的維數。

語法:數組名稱.Rank

 

 

 

3、 Array.Clear()清除元素值

將數組中的元素設置為0、null或fasle,具體取決于數組元素的數據類型。

語法:Array.Clear(被清除坐標數組名稱,起始坐標,結束坐標)

 

 

4、 Array.copy 復制

將一個數組的一部分元素復制到另一個數組中,從索引0開始復制一定長度的元素。

語法:Array.Copy(被復制的數組名,復制到的數組名, 元素個數);

 

 

5、 CopyTo 復制

將源數組元素內容復制到目標數組,從目標數組的某個索引處開始到結束復制,目標數組長度必須大于等于源數組長度。

語法:源數組名稱.CopyTo(目標數組名,目標數組開始復制的元素位置)

注意:目標數組長度必須大于源數組;

      從設定的起始元素起替換目標數組元素,目標數組大于源數組的的內容將保留

 

 

6、 Clone 克隆

克隆是將已知數組復制給新定義的數組,所以需要聲明新數組用于接收;

克隆必須進行強制轉換,即:(數組類型[])

語法:新定義的數組=(數組類型[])目標數組名.Clone();

 

 

7、 Array.IndexOf() 正向查找第一個匹配項的索引(元素位置)

Array.LastIndexOf(  ) 反向查找第一個匹配項的索引

返回一對數組或部分數組中某個值第一個匹配項的索引,找不到返回-1。

語法:Array.IndexOf(數組名稱,元素)

 

 

8、Array.Sort() 排序

語法:Array.Sort(數組名稱)

 

 

9、Array.Reverse()  反轉

反轉數組中元素的順序

語法:Array.Reverse(需要反轉的數組名稱)

 

 

 

練習:冒泡排序

兩兩比較,大的放到后

2  8  6  1  

第一輪:

   2 6 1 8  比較3次   4-1    

第二輪:

   2 1 6 8  比較2次   4-2

第三輪:

   1 2 6 8  比較1次   4-3

 

4個數比較

4-1輪

每輪:元素總數-當前輪數(i+1) 

 

二維數組

●二維數組就像具有行和列的表格。

●二維數組具有兩個索引,分別代表行(前面)、列(后面)。

●int[,] score=new int[5,2];

聲明初始化賦值

 

讀取賦值

名稱[行,列]

屬性

 

 

練習:5個學生參加了2門課的考試,統計出每個學生平均成績,2門課的平均成績。

 

交錯數組

●交錯數組就是元素為數組的數組(數組的嵌套)。

●交錯數組元素大小可以不同(元素就是數組,指的是交錯數組中的數組大小可以不同)。

●聲明一個由5個元素組成的一維數組,其中每個元素都是一個一維整數數組。

●Int[][] score =new int [5][]                   5為外圍數組(行)   []為內在數組

 

練習:錄入學生個數,考試科目數量,及相應成績

 

Params參數數組

●通過關鍵字params定義參數數組

●用于方法參數不固定的場合

●可以傳遞數組,也可以傳遞類型相同的多個變量。

作用

●在對數組長度未知(可變)的情況下進行函數聲明。

注意

●數量不限。

●參數數組必須是方法聲明中的最后一個參數。

●方法最多只能有一個參數數組。

●只能在一維數組上使用params關鍵字。

●Console.WriteLine中使用占位符,就是使用參數數組實現的。                   

數據類型

值類型

●直接存儲值。(數據存儲在棧中)

●一個值類型變量賦給另一個值類型變量時,會復制一個數據副本給它(在棧中產生2個數據)。

改變值類型不影響其他數值。(因為是2個數據,互不影響)

 

引用類型

●存儲對數據的引用地址。(變量定義在棧中,而數據實際存儲在堆中,數據只是引用到變量)

●賦值時只復制對對象的引用地址,而不復制對象本身。(實際數據只有一份)

●兩個引用類型的變量可以指向同一對象。

改變一個引用類型的變量可能會影響其他對象。(因為是一份數據)

類型歸屬

●值類型:枚舉,結構(基礎類型)

●引用類型:類(包括數組,字符串),接口,委托

String類型

●String是特殊的引用類型。(因為引用類型存在堆中,可以存大量內容,所以string定義為引用類型)

字符串常量具備字符串池特性(字符串變量拼接后形成新對象)

●String再賦值后(s1=“二毛”),不會影響s1的值。但是原數據就會是垃圾。

●String賦值后的值,是不可以改變的(所以才會產生垃圾)。

●可變字符字符串:stringBuilder。

stringBuilder在原有字符串上修改,string創建新的字符串替換。

 

 

 

 

原因

內存的??纱娣艛祿。\行速度快 ; 堆可存儲空間大,但是運行速度慢。所以值類型在棧,引用類型在堆。

 

聲明與釋放引用類型變量

使用關鍵字 null 進行釋放數據(賦值空字符串)。

 

 

釋放之后就形成了垃圾,會被自動回收。

 

比較值類型

在做==和!= 比較時,比較的是存儲的數值(真實數據)。

 

比較引用類型

在做=和!= 比較時,比較的是引用的位置是不是同一個,而不是所引用的值。

 

枚舉類型

●定義:列舉某個數據的所有取值。

●作用:增強代碼的可讀性,限定取值。

●適用性:取值范圍較小。

●使用enum關鍵字定義枚舉數據類型。

●語法:  enum 名字{值1,值2,值3,值4}

●每個枚舉元素都是有枚舉值。默認情況下,第一個枚舉的值為0,后面每個枚舉的值一次遞增1,可以修改值,后面的枚舉數的值一次遞增。

●枚舉元素默認基礎類型為int,準許使用的枚舉類型有byte、sbyte、short、ushort、int、uint、long或ulong。

           

●類型轉換

//string類型轉換為枚舉

Sex s1 = (Sex)Enum.Parse(typeof(Sex), "男");

//枚舉轉換為字符串

string str = Sex.女.ToString();

 

//int類型轉換為枚舉

Sex s2 = (Sex)3;

//枚舉類型轉換為int類型

int i = (int)Sex.男;

●標志枚舉

可以同時賦值多個枚舉值

[Flags]//標志枚舉

enum Sex

{

    男=1,  //000001

    女=2,  //000010

    未知=4 //000100

}

Sex s3 = Sex.男 | Sex.女;

//System.Drawing.FontStyle

●判斷標志枚舉值中是否包含某項值

bool b = (s2 & Sex.男) == Sex.男;

//  00011

//  00001

//  00001  

 

字符串操作

屬性

●使用s.Length屬性來獲得字符串中的字符個數。

●字符串的內容一旦聲明就不可變。所以只能讀取,不能修改。

●如要修改字符串內容,先創建一個新的字符串,用s.ToArray()方法得到字符串的char數組,對數組進行修改后再調用new string(char[])這個構造函數來創建char數組的字符串。一旦字符串被創建,那么char數組的修改也不會造成字符串的改變。

 

●StringBuilder 可變字符串。

 

 

String 類常用函數

●字符串中插入字符.Insert();

 

 

●查找字符中是否有該字符,返回bool值。

 

 

●ToLower();得到字符串的小寫形式。

 

●ToUpper();得到字符串的大寫形式。

 

 

●查找字符串位置

 

 

●取子串

 

 

●Trim();移除字符串兩頭的空白字符。用于避免用戶錯誤的錄入。

 

 

●兩個字符串(si、s2)忽略大小寫的比較。

 

 

●將字符串按照指定的char分隔符拆分為字符數組,和拼接

 

 

 

 

●將字符串按照指定的char分隔符拆分成字符數組后忽略空字符

 

 

●替換字符串中個別內容,使用replace。

 

●取子串

 

練習:

1、字符串反轉:“我要學習”

string str = "我要學習";

char[] toChar = str.ToArray();

Array.Reverse(toChar);

string toStrint = new string(toChar);

Console.WriteLine(toStrint);

 

2、單詞反轉:I want to learn

string str = "I want to learning";

string[] toArry= str.Split(' ');

Array.Reverse(toArry);

string toString=string.Join(" ", toArry);

Console.WriteLine(toString);

 

 

奇數字符大寫偶數字符小寫:

string str = " I want to learning ";

string result = string.Empty;

char temp='/0';

for (int i = 0; i < str.Length; i++)

{

     if (i % 2 == 0)

     {

           temp =char.ToUpper(str[i]);

     }

     else

     {

           temp =char.ToLower(str[i]);

     }

     result += temp;

 }

 Console.WriteLine(result);


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品成人久久| 精品中文字幕久久久久久| 在线观看国产成人av片| 日韩激情av在线免费观看| 日本精品视频在线播放| 欧美另类在线播放| 国产一区二区三区四区福利| 色妞欧美日韩在线| 欧美日韩在线免费观看| 亚洲欧美国产制服动漫| 亚洲在线www| 69视频在线免费观看| 亚洲wwwav| 亚洲aa中文字幕| 97热精品视频官网| 日韩欧美中文字幕在线观看| 在线观看欧美日韩国产| 国产成人激情小视频| 伊人成人开心激情综合网| 国产日韩综合一区二区性色av| 久久频这里精品99香蕉| 亚洲精品中文字幕av| 亚洲一区二区三区乱码aⅴ蜜桃女| 色琪琪综合男人的天堂aⅴ视频| 欧美电影免费观看网站| 国产主播喷水一区二区| 亚洲黄色av网站| 国产一区二区黑人欧美xxxx| 青青草原一区二区| 97av在线播放| 久久男人的天堂| 91高潮在线观看| 欧美国产日韩精品| 亚洲精品综合精品自拍| 欧美性黄网官网| 亚洲人成网7777777国产| 亚洲男人的天堂在线播放| 亚洲国产欧美一区二区三区同亚洲| 日韩视频―中文字幕| 欧美激情a在线| 高清欧美性猛交xxxx| 国产欧美一区二区三区在线| 国内成人精品视频| 日韩中文字幕精品| 久久久国产视频91| 亚洲a在线播放| 日产精品久久久一区二区福利| 欧美高清在线观看| 国产精品女人网站| 久久99青青精品免费观看| 奇米影视亚洲狠狠色| 中文字幕综合在线| 欧美中在线观看| 一区二区亚洲欧洲国产日韩| 国产精品久久国产精品99gif| 亚洲欧美中文字幕在线一区| 91极品视频在线| 国产日韩欧美电影在线观看| 国产99视频在线观看| 久久av红桃一区二区小说| 国产精品美女主播| 91社区国产高清| 91欧美精品午夜性色福利在线| 91精品国产一区| 日韩av影视综合网| 亚洲综合国产精品| 在线看片第一页欧美| 亚洲欧美成人在线| 欧美日韩一区二区免费视频| 久久99国产精品自在自在app| 中文字幕日韩高清| 亚洲free性xxxx护士白浆| 精品国产精品自拍| 亚洲成人精品久久久| 精品中文视频在线| 日韩国产一区三区| 精品久久在线播放| 欧美日韩国产激情| 亚洲人成网站999久久久综合| 久青草国产97香蕉在线视频| 国产成人精品一区二区在线| xxx成人少妇69| 欧美成人免费全部观看天天性色| 午夜精品久久久久久久99热| 91豆花精品一区| 亚洲在线www| 国产成人精品免高潮费视频| 国产精品福利网| 亚洲护士老师的毛茸茸最新章节| 国产成人久久久精品一区| 欧美国产精品va在线观看| 欧美成人免费全部观看天天性色| 久久久久久国产精品久久| 久久久亚洲成人| 亚洲精品视频在线观看视频| 国产一区二区在线播放| 欧美最顶级的aⅴ艳星| 国产精品美女久久| 久久精品中文字幕一区| 在线观看不卡av| 欧美一级在线播放| 国产精品美女免费视频| 国产精品27p| 国产精品678| 黑人巨大精品欧美一区二区免费| 国产精品男人爽免费视频1| 亚洲免费视频一区二区| 欧美精品videosex极品1| 中文字幕综合在线| 日韩中文字幕在线视频播放| 欧美午夜精品久久久久久人妖| 亚洲国产成人精品久久久国产成人一区| 在线看国产精品| 欧美黑人巨大xxx极品| 欧美韩国理论所午夜片917电影| 久久久久久亚洲精品不卡| 成人有码在线播放| 国产精品久久久久久久久免费看| 欧美日韩中文字幕| 欧美另类在线播放| 国产精品久久久精品| 亚洲欧洲美洲在线综合| 日韩欧美亚洲国产一区| 国模gogo一区二区大胆私拍| 国产精品女人久久久久久| 久久精品亚洲一区| 日韩电影中文字幕在线观看| 538国产精品一区二区在线| 久久成人18免费网站| 亚洲热线99精品视频| 2018国产精品视频| 欧洲成人免费视频| 日韩av在线网站| 欧美一级视频一区二区| 国产成人一区二| 日韩av高清不卡| 中文字幕av一区二区三区谷原希美| 午夜精品久久久久久久99黑人| 欧美日韩国产一区二区三区| 亚洲精品少妇网址| 国产99久久精品一区二区 夜夜躁日日躁| 久久综合久久美利坚合众国| 国产成人亚洲精品| 久久久久女教师免费一区| 国产中文字幕亚洲| 亚洲午夜小视频| 久久久免费精品视频| 精品国产一区二区三区久久狼黑人| 日本欧美爱爱爱| 国产欧美中文字幕| 亚洲人成电影在线观看天堂色| 欲色天天网综合久久| 日韩精品在线第一页| 亚洲黄色www网站| 91最新国产视频| 日韩av中文字幕在线免费观看| 热re91久久精品国99热蜜臀| 欧美大胆在线视频| 亚洲精品福利在线观看| 国产在线拍揄自揄视频不卡99| 久操成人在线视频| 久久99国产精品自在自在app| 亚洲人成在线播放| 日韩人体视频一二区|