C#中的修飾訪問符,構造函數,析構函數,索引器

1。c#中的訪問修飾符:public,protected,internal,private,由他們組成的訪問級別有:
1)public:訪問不受限制。
2)protected:訪問僅限包含類或從包含類派生的類型
3)internal:訪問僅限於當前程序集。
4)private:訪問僅限於包含類型。
5)protected+internal:訪問僅限於當前程序集或從包含類派生的類型。
除了protected+internal,成員或類型只能有一個訪問符,結構和類的默認訪問權限爲internal方法的默認訪問權限爲:private。enum默認的成員中的可訪問性爲public,class中成員的可訪問性爲private,interface中的成員爲public,struct中成員爲private,命名空間不允許有訪問修飾符。
2。構造函數:
每個結構和類都有默認的構造函數,類中加入自定義的構造函數後,默認的會自動消失,結構中默認的構造函數不會消失,因此結構中的構造函數必須加參數。構造函數初始化所有字段,它的方法名與類名相同且無返回值類型,實例化類時new的作用:1。分配內存 2。實例化類中的字段和方法
類中出現靜態構造函數的方法爲:1。自定義一個靜態構造函數,2。定義一個靜態的字段
有多個構造函數時先調用靜態構造函數,靜態構造函數不能有參數和訪問修飾符。
3。析構函數
析構函數無訪問修飾符,如:~MyClass()析構函數一般不使用,當一段代碼佔用大量資源時纔會用析構函數釋放資源。不能在結構中定義析構函數。只能對類使用析構函數。一個類只能有一個析構函數。無法繼承或重載析構函數。無法調用析構函數。它們是被自動調用的。析構函數既沒有修飾符,也沒有參數。
4。索引器
索引器允許類或結構的實例就像數組一樣進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用參數。使用索引器:
1。使用索引器可以用類似於數組的方式爲對象建立索引。
2。get 訪問器返回值。set 訪問器分配值。
3。this 關鍵字用於定義索引器。
4 。value 關鍵字用於定義由 set 索引器分配的值。
5。 索引器不必根據整數值進行索引,由您決定如何定義特定的查找機制。
6。 索引器可被重載。
7。 索引器可以有多個形參,例如當訪問二維數組時。
 class DayCollection
    {
        string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
     private int GetDay(string testDay)
        {
            int i = 0;
            foreach (string day in days)
            {
                if (day == testDay)
                {
                    return i;
                }
                i++;
            }
            return -1;
        }
      public int this[string day]
        {
            get
            {
                return (GetDay(day));
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            DayCollection week = new DayCollection();
            System.Console.WriteLine(week["Fri"]);
            System.Console.WriteLine(week["Made-up Day"]);
        }
    }
改程序輸出結果爲:5  -1
 public int this[string day]
        {
            get
            {
                return (GetDay(day));
            }
        }
爲索引器,索引器允許以數組的形式訪問元素,可以定義×××和非×××兩種下標。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章