C#數據類型略講

C#類型所含的數據類型

與其他大部分語言類似,C#擁有int、bool等等值類型數據以及用戶可以自定的struct(結構體)類型,

他們都是繼承於System.ValueType這個類的,而System.ValueType又繼承於System.Object這個類。

 

Int整形

int在C#中其實做了一些處理,他並不是直接代表其他語言裏的int,

在C#中,int的真實名稱其實爲System.Int32,

類似的,bool的真實名稱其實爲System.Boolean等等。

需要注意的是,在C#當中,int的默認構造就是0

所以直接調用int的默認構造函數與賦值0效果是一樣的。

using System;
namespace u3dTest1
{ 
    class Program
    {
        static void Main(string[] args)
        {
            int intValue = 0;
            int intValue2 = new int();
            //上面兩種寫法其實是等價的,在c#當中int的默認構造就是0
            //第二句話就是調用了int的默認構造函數,也就等於第一句話
            //vs的快捷鍵f12就可以跳到定義區,裏面有詳細構造,其他的類型也一樣
        }
    }
}

intValue.CompareTo

intValue.Equals

intValue.GetHashCode...

這些都是int一些可視的接口與方法

 

Struct結構體

strcut的目的就是用來打包封裝一個比較小的數據集,

在strcut裏也可以像class一樣定義方法、事件等等,它基本可以做到class能做到的大部分事。

using System;
namespace u3dTest1
{ 
    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();//調用下面定義的結構體
            person.age = 10;
            Console.WriteLine(person.age);
            /*需要注意的是,雖然age在結構體裏定義的是一個int類型,但通過WriteLine
             打印出來的將被轉換成string類型輸出在控制檯上*/
            Console.ReadLine();//用來暫停,顯示結果
        }
        
        struct Person
        {
            public int age;
            public string name;
            public string fname;
            public string lastName;
        }
    }
}

在定義成員屬性時也要用到訪問權限修飾符,跟java大同小異

public        公開的可視的

private       私有的,只有同一個類裏可以訪問

internal      在同一個包內(同一個命名空間內),可以訪問

protected   繼承於它的類也可以訪問它

  同一個類 同一個包 同一個包的子類 不同包的非子類
public
protected
internal
private

 

 

enum枚舉類型

枚舉類型的主要功能就是限定變量的可能性,

比如現在枚舉了days天,那麼它只有可能是週一到週日,不可能是“一月”

枚舉默認的基礎類型是int,且默認從0開始,類似於下標

using System;
namespace u3dTest1
{ 
    //如果像現在枚舉的是string類型,在輸出時強轉成int,就會輸出對應的下標
    enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
    //當然,你也可以在定義的時候確定它的基礎類型,比如byte字節型和short短整形等等所有非char的類型
    enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };
    class Program
    {
        static void Main(string[] args)
        {
            //調用枚舉類型可以用兩種方式
            /*1.*/
            Console.WriteLine(Days.Monday);//直接調用之前定義的枚舉類型Days
            /*2.*/
            var day = Days.Thursday;/*var的作用就是無論你現在聲明或者賦予這個變量什麼類型的值都可以,都視爲可行,
                                    只有到需要真正確定它是什麼類型時纔會去自動設定類型*/
            Console.WriteLine(day);//先把Days.Thursday的值賦予變量day,再打印day

            Console.WriteLine((int)Days.Monday);//強轉int
            Console.ReadLine();//用來暫停,顯示結果
        }
   }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章