程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> C#編程之基礎總結

C#編程之基礎總結

編輯:更多關於編程

       .NetFramework簡介

      .netframework運行於操作系統之上,提供良好的跨語言特性。

      .netframework包含兩個內容:公共語言運行時(CLR)和類庫集(FCL)

      MSIL微軟中間語言。當編譯.net支持的語言編寫的代碼的時候,輸出的代碼為MSIL

      CLR又包含:通用語言規范(CLS:保證語言互操作性的一組規則)和公共類型系統(CTS:包含了.net支持的各語言間兼容的數據類型和功能)

      C#中的變量和常量

      C#中的基本數據類型:

      值類型和引用類型

      值類型:簡單類型、結構類型和枚舉類型。

      簡單類型:整數類型、浮點類型、小數類型(decimal)和布爾類型等

      sbyte是有符號的,相當java的byte型,范圍-128~127

      C#中byte是無符號的,范圍0~255

      變量命名方法:

      帕斯卡命名法和駱駝命名法

      帕斯卡命名法:如果有多個單詞組成,每個單詞首字母大寫

      駱駝命名法:如果有多個單詞組成,第一個單詞全部小寫,後面的單詞大寫

      C#中的常量:const與readonly兩種

      const聲明的常量:叫靜態常量,必須聲明時就初始化,且只能用常數值初始化

      readonly聲明的常量:叫動態常量,可以在聲明時不初始化,只能在構造函數中初始化,但必須每個構造函數中都要初始化;而且可以使用變量值初始化

      class Test

      {

      const float PI = 3.1416f; //常量命名:全部大寫

      readonly float G;

      public Test()

      {

      G = 9.80F;

      }

      public Test(float g) //每個構造函數中都要初始化;而且可以使用變量值初始化

      {

      G = g;

      }

      }

      裝箱:值類型轉換成有引用類型

      拆箱:引用類型轉換成值類型

      值類型:存在棧中

      引用類型:在堆中存放對象的地址(即引用),對象本身存放在棧中

      拆裝箱允許值類型和引用類型相互處理

      C#語法

      C#中的裝箱和拆箱

      Switch()括號中可以是int ,char和string ,switch語句中的case語句冒號後什麼都不寫,可以不寫break,其他情況一定要寫break,否則報錯

      數組:五種聲明方式

      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};

      //數組大小也可以是變量

      int count = 3;

      int []arr = new int[count];

      枚舉:用有意義的字符去訪問數據

      public enum Contry:long //指定枚舉類型,必須是整型,不寫為int型

      {

      Pacific, //第一個未付值,默認為零

      China=1860,

      Japan,

      US=1901,

      Canada

      }

      C#中的面向對象

      析構函數:函數名與構造函數名一樣,~函數名(),不接受參數,由垃圾回收器自動調用(GC.Collect()調用垃圾回收器)

      virtual關鍵字:C#中,子類要重寫父類的方法,必須把父類的方法標識為virtual(虛擬的),同時重寫方法用override修飾

      new 關鍵字:new關鍵字:在子類中定義的一個和父類方法簽名一樣,但是個全新的方法。並非重寫父類的方法。

      base關鍵字:用base關鍵字調用父類的方法

      訪問修飾符:

      public 公有的,

      internal 在一個項目中的,

      protected有父子關系的類,

      private僅所屬類的成員

      注意:如果有一個類既繼承類又實現接口,類名要寫在接口名前面。

      屬性,索引器,委托,事件

      屬性:訪問修飾一般為public,首字母大寫。屬性內有get和set訪問器,get內必須要有return,set內有value關鍵字,代表從外部接受的值。

      索引器:索引器的作用:像處理數組一樣去處理類的對象。

      public class Student

      {

      private string []obj=new string[10];

      //this關鍵字在這裡代表每一個類的對象,[]中整數是指通過下標訪問

      public string this[int index] //此是可以通過索引號去訪問每一個類的成員

      {

      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]="怪盜基德";

      }

      }

      委托:相當於函數指針,可使程序在運行是再指定具體要運行的方法。

      (1) 定義委托:Public delegate int Call()

      (2) 實例化委托:objcall=new Call(方法名)

      (3) 調用委托:objcall();

      事件:事件實際上是一種特殊的委托,委托每次只能指向一個方法,而事件可以指向多個方法

      (1)定義一個委托public delegate void delegateMe();

      (2)定義一個事件 private event delegate eventMe;

      (3)訂閱事件 eventMe+=new delegateMe(方法名1());

      eventMe+=new delegateMe(方法名2());

      (4) 引發事件 if(condition) then eventMe();

      多線程

      創建線程實例:

      Thread obj=new Thread(new ThreadStart(方法名稱))

      開始:Start();

      休眠:Sleep();

      終止:Abort();

      掛起:Suspend();

      恢復:Resume();

      當前線程:Thread.CurrentThread

      ThreadPriority枚舉值用來指定調度線程的優先級(共5級)

      lock關鍵字

      C#中通過lock關鍵字提供同步

      線程同步:確保不同的線程對共享資源進行訪問時,每次只有一個線程訪問資源。

      Lock(this)

      {

      For(int i=0;i<10;i++)

      {

      //語句;

      }

      }

      數組集合對象

      Array: Array和數組很相似,還可以相互轉化和拷貝,很多方法都是是通用, 可以用Array的靜態方法對數組實現反轉,排序,這是數組本身無法做到的

      using system.Array;

      Array ar=Array.CreateInstance(typeof(int),5); //創建一個Array的實例

      ar.SetValue(12,0); //賦值

      Array.Reverse(ar); // 反轉

      Array.Sort(ar); // 排序

      ArrayList:最常用的集合之一.集合的好處是在不知道數據大小時,可以實現容量自動增長,而數組做不到.

      Add()添加元素

      Remove(位置)移除元素

      ArrayList al=new ArrayList();

      //如果要遍歷集合元素,

      //方法一:

      //將集合中的數拷貝到數組中

      object []temp=al.ToArray();

      foreach(object t in temp)

      {

      Console.WriteLine(t);

      }

      //方法二,使用迭代器

      IEnumerator ie=al.GetEnumerator();

      while(ie.MoveNext())

      {

      Console.WriteLine(ie.Current);

      }

      HashTable:以鍵值對的形式保存值

      Hashtable hash=new Hashtable(4);

      hash.Add("中國",1860);

      hash.Add("德國",1940);

      Console.WriteLine(hash["中國"].ToString());通過key獲得value

      SortedList :是 Hashtable 和 Array 的混合

      能存放鍵值對,類似Hashtable

      能通過自身提供的方法通過索引直接遍歷,類似於Array

      objsortlist.GetKey(i) 方法獲得鍵

      objsortlist.GetByIndex(i)方法獲得值

            :更多精彩教程請關注三聯設計教程 欄目,

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved