C#基础总结
?---------------------- Windows Phone 7手機(jī)開(kāi)發(fā)、.Net培訓(xùn)、期待與您交流! ----------------------
?
?.NetFramework簡(jiǎn)介
.netframework運(yùn)行于操作系統(tǒng)之上,提供良好的跨語(yǔ)言特性。
.netframework包含兩個(gè)內(nèi)容:公共語(yǔ)言運(yùn)行時(shí)(CLR)和類(lèi)庫(kù)集(FCL)
MSIL微軟中間語(yǔ)言。當(dāng)編譯.net支持的語(yǔ)言編寫(xiě)的代碼的時(shí)候,輸出的代碼為MSIL
CLR又包含:通用語(yǔ)言規(guī)范(CLS:保證語(yǔ)言互操作性的一組規(guī)則)和公共類(lèi)型系統(tǒng)(CTS:包含了.net支持的各語(yǔ)言間兼容的數(shù)據(jù)類(lèi)型和功能)
--------------------------------------------------------------------------------
C#中的變量和常量
C#中的基本數(shù)據(jù)類(lèi)型:
值類(lèi)型和引用類(lèi)型
值類(lèi)型:簡(jiǎn)單類(lèi)型、結(jié)構(gòu)類(lèi)型和枚舉類(lèi)型。
簡(jiǎn)單類(lèi)型:整數(shù)類(lèi)型、浮點(diǎn)類(lèi)型、小數(shù)類(lèi)型(decimal)和布爾類(lèi)型等
sbyte是有符號(hào)的,相當(dāng)java的byte型,范圍-128~127
C#中byte是無(wú)符號(hào)的,范圍0~255
--------------------------------------------------------------------------------
變量命名方法:
帕斯卡命名法和駱駝命名法
帕斯卡命名法:如果有多個(gè)單詞組成,每個(gè)單詞首字母大寫(xiě)
駱駝命名法:如果有多個(gè)單詞組成,第一個(gè)單詞全部小寫(xiě),后面的單詞大寫(xiě)
--------------------------------------------------------------------------------
C#中的常量:const與readonly兩種
const聲明的常量:叫靜態(tài)常量,必須聲明時(shí)就初始化,且只能用常數(shù)值初始化
readonly聲明的常量:叫動(dòng)態(tài)常量,可以在聲明時(shí)不初始化,只能在構(gòu)造函數(shù)中初始化,但必須每個(gè)構(gòu)造函數(shù)中都要初始化;而且可以使用變量值初始化
class Test
{
??????? const? float PI = 3.1416f;?????? //常量命名:全部大寫(xiě)
??????? readonly float G;
??????? public Test()
??????? {
??????????????? G = 9.80F;
??????? }
??????? public Test(float g) //每個(gè)構(gòu)造函數(shù)中都要初始化;而且可以使用變量值初始化
??????? {
??????????????? G = g;
??????? }
}
--------------------------------------------------------------------------------
C#中的裝箱和拆箱
裝箱:值類(lèi)型轉(zhuǎn)換成有引用類(lèi)型
拆箱:引用類(lèi)型轉(zhuǎn)換成值類(lèi)型
值類(lèi)型:存在棧中
引用類(lèi)型:在堆中存放對(duì)象的地址(即引用),對(duì)象本身存放在棧中
拆裝箱允許值類(lèi)型和引用類(lèi)型相互處理
--------------------------------------------------------------------------------
C#語(yǔ)法
Switch()括號(hào)中可以是int ,char和string ,switch語(yǔ)句中的case語(yǔ)句冒號(hào)后什么都不寫(xiě),可以不寫(xiě)break,其他情況一定要寫(xiě)break,否則報(bào)錯(cuò)
數(shù)組:五種聲明方式
?? int []array;
?? array = new int[2];
?? //第二種聲明方式
?? int []array1 = new int[2];
?? //第三種聲明方式
?? int []array2 = {1,2,3};
?? //第四種聲明方式
?? int []array3 = new int[]{1,2,3};
?? //第五種聲明方式
?? int []array4 = new int[3]{1,2,3};
?? //數(shù)組大小也可以是變量
?? int count = 3;
?? int []arr = new int[count];
?
--------------------------------------------------------------------------------
枚舉:用有意義的字符去訪問(wèn)數(shù)據(jù)
public enum Contry:long? //指定枚舉類(lèi)型,必須是整型,不寫(xiě)為int型
? {
?? Pacific,???????? //第一個(gè)未付值,默認(rèn)為零
?? China=1860,
?? Japan,
?? US=1901,
?? Canada
?
? }
--------------------------------------------------------------------------------
C#中的面向?qū)ο?br />析構(gòu)函數(shù):函數(shù)名與構(gòu)造函數(shù)名一樣,~函數(shù)名(),不接受參數(shù),由垃圾回收器自動(dòng)調(diào)用(GC.Collect()調(diào)用垃圾回收器)
?
virtual關(guān)鍵字:C#中,子類(lèi)要重寫(xiě)父類(lèi)的方法,必須把父類(lèi)的方法標(biāo)識(shí)為virtual(虛擬的),同時(shí)重寫(xiě)方法用override修飾
new 關(guān)鍵字:new關(guān)鍵字:在子類(lèi)中定義的一個(gè)和父類(lèi)方法簽名一樣,但是個(gè)全新的方法。并非重寫(xiě)父類(lèi)的方法。
base關(guān)鍵字:用base關(guān)鍵字調(diào)用父類(lèi)的方法
訪問(wèn)修飾符:
public 公有的,
internal 在一個(gè)項(xiàng)目中的,
protected有父子關(guān)系的類(lèi),
private僅所屬類(lèi)的成員
注意:如果有一個(gè)類(lèi)既繼承類(lèi)又實(shí)現(xiàn)接口,類(lèi)名要寫(xiě)在接口名前面。
?
--------------------------------------------------------------------------------
屬性,索引器,委托,事件
屬性:訪問(wèn)修飾一般為public,首字母大寫(xiě)。屬性?xún)?nèi)有g(shù)et和set訪問(wèn)器,get內(nèi)必須要有return,set內(nèi)有value關(guān)鍵字,代表從外部接受的值。
索引器:索引器的作用:像處理數(shù)組一樣去處理類(lèi)的對(duì)象。
??? public class Student
????? {
????????? private string []obj=new string[10];
????????? //this關(guān)鍵字在這里代表每一個(gè)類(lèi)的對(duì)象,[]中整數(shù)是指通過(guò)下標(biāo)訪問(wèn)
????????? public string this[int index]??????????? //此是可以通過(guò)索引號(hào)去訪問(wèn)每一個(gè)類(lèi)的成員??
????????? {
?????????????? get
?????????????? {
??????????????????? return obj[index];
?????????????? }
?????????????? set
?????????????? {
??????????????????? if(value!=null)
??????????????????? obj[index]=value;
?????????????? }
????????? }
???????? static void Main(string []args)
???????? {
????????????????? Student stucollection=new Student();
?????????????????? stucollection[0]="柯南";
?????????????????? stucollection[1]="小五郎";
?????????????????? stucollection[5]="怪盜基德";
???????? }
????? }
委托:相當(dāng)于函數(shù)指針,可使程序在運(yùn)行是再指定具體要運(yùn)行的方法。
(1) 定義委托:Public delegate int Call()
(2) 實(shí)例化委托:objcall=new Call(方法名)
(3) 調(diào)用委托:objcall();
事件:事件實(shí)際上是一種特殊的委托,委托每次只能指向一個(gè)方法,而事件可以指向多個(gè)方法
(1)定義一個(gè)委托public delegate void delegateMe();
(2)定義一個(gè)事件 private event delegate eventMe;
(3)訂閱事件??? eventMe+=new delegateMe(方法名1());
?????????????????????? eventMe+=new delegateMe(方法名2());
(4) 引發(fā)事件??? if(condition)?? then? eventMe();
?
--------------------------------------------------------------------------------
多線程
創(chuàng)建線程實(shí)例:
Thread obj=new Thread(new ThreadStart(方法名稱(chēng)))
開(kāi)始:Start();
休眠:Sleep();
終止:Abort();
掛起:Suspend();
恢復(fù):Resume();
當(dāng)前線程:Thread.CurrentThread
ThreadPriority枚舉值用來(lái)指定調(diào)度線程的優(yōu)先級(jí)(共5級(jí))
lock關(guān)鍵字
C#中通過(guò)lock關(guān)鍵字提供同步
線程同步:確保不同的線程對(duì)共享資源進(jìn)行訪問(wèn)時(shí),每次只有一個(gè)線程訪問(wèn)資源。
Lock(this)
{
???? For(int i=0;i<10;i++)
???? {
????????? //語(yǔ)句;
???? }
}
?
--------------------------------------------------------------------------------
數(shù)組集合對(duì)象
Array: Array和數(shù)組很相似,還可以相互轉(zhuǎn)化和拷貝,很多方法都是是通用, 可以用Array的靜態(tài)方法對(duì)數(shù)組實(shí)現(xiàn)反轉(zhuǎn),排序,這是數(shù)組本身無(wú)法做到的
using? system.Array;
Array ar=Array.CreateInstance(typeof(int),5);?? //創(chuàng)建一個(gè)Array的實(shí)例
ar.SetValue(12,0);????????????????????????? //賦值
?Array.Reverse(ar);??? // 反轉(zhuǎn)
?Array.Sort(ar);??????? // 排序
ArrayList:最常用的集合之一.集合的好處是在不知道數(shù)據(jù)大小時(shí),可以實(shí)現(xiàn)容量自動(dòng)增長(zhǎng),而數(shù)組做不到.
Add()添加元素
Remove(位置)移除元素
ArrayList al=new ArrayList();
//如果要遍歷集合元素,
?? //方法一:
?? //將集合中的數(shù)拷貝到數(shù)組中
?? object []temp=al.ToArray();
?? foreach(object t in temp)
?? {
??? Console.WriteLine(t);
?? }
?? //方法二,使用迭代器
?? IEnumerator ie=al.GetEnumerator();
?? while(ie.MoveNext())
?? {
??? Console.WriteLine(ie.Current);
?? }
HashTable:以鍵值對(duì)的形式保存值
Hashtable hash=new Hashtable(4);
?hash.Add("中國(guó)",1860);?????????
?hash.Add("德國(guó)",1940);
?Console.WriteLine(hash["中國(guó)"].ToString());通過(guò)key獲得value
SortedList :是 Hashtable 和 Array 的混合
能存放鍵值對(duì),類(lèi)似Hashtable
能通過(guò)自身提供的方法通過(guò)索引直接遍歷,類(lèi)似于Array
objsortlist.GetKey(i)?? 方法獲得鍵
objsortlist.GetByIndex(i)方法獲得值
?
?
>---------------------- Windows Phone 7手機(jī)開(kāi)發(fā)、.Net培訓(xùn)、期待與您交流! ---------------------- 詳細(xì)請(qǐng)查看:http://net.itheima.com/
轉(zhuǎn)載于:https://www.cnblogs.com/lovexiao/archive/2012/04/22/2465293.html
總結(jié)
- 上一篇: listview移动时 item背景颜色
- 下一篇: C#调用WebService