C#基礎--之資料類型【轉】

來源:互聯網
上載者:User

標籤:dia   void   日常生活   字母   特徵   精度   首字母   閱讀   tab   

  在第一章我們瞭解了C#的輸入、輸出語句後,我這一節主要是介紹C#的基礎知識,本節的內容也是後續章節的基礎,好的開端等於成功的一半。在你閱讀完本章後,你就有足夠的C#知識編寫簡單的程式了。但還不能使用繼承或其它物件導向的特徵。

   本章主要針對以下幾個部份來進行講解:

   1、電腦是由什麼來儲存所使用的資料?

   2、基礎資料型別 (Elementary Data Type)有哪些?

   3、如何聲明變數和賦值?

   4、變數和常量的區別?

   5、不同資料類型之間是如何轉換的?

   下面,我們現一個一個的來瞭解這些問題。

  

    一、電腦是由什麼來儲存所使用的資料?

      這個問題用一句話比較籠統的概括,那就是:電腦使用記憶體來記憶計算時所使用的資料。

      在現實生活中的資料各種各樣,整數、小數、字串、字元等等,它們都類型是不一樣的,所以你要想在電腦中使用這些類型,就必須在記憶體中為它申請一塊合適的空間。

     那有哪些資料類型是C#能使用的呢?我們一起來看一看.

    

      二、基礎資料類型有哪些

      首先要瞭解一點:C#認可的基礎資料類型並沒有內建於C#語言中,而是內建於.net Framework中。

      如,在c#中聲明一個int類型的資料時,聲明的實際上是.net結構System.Int32的一個執行個體。這聽起來似乎很深奧,但其意義深遠:這表示在文法上,可以把所有的基礎資料類型看作是支援某些方法的類。

     類型實際上仍儲存為基本類型。基本類型在概念上用.Net結構表示,所以肯定沒有效能損失。

     下面大家一起來瞭解一下C#中定義的內建類型,我們將列出每個類型,以及它們的定義和對應的.net類型(CTS類型)的名稱。

      c#有15個預定義類型,其中13個是實值型別,兩個是參考型別(string 和 object)

 

    1、整型

 

   2、浮點類型

 

    float資料類型用於較小的浮點數,因為它要求的精度較低。

    double資料類型比float資料類型大,提供的精度也大一倍(15位)。

    如果在代碼中沒有對某個非整數值(如12.3)寫入程式碼,則編譯器一般假定該變數是double。

    如果想指定該值為float,可以在其後加上字元F(或f),如:

         float f = 12.3F;

 

 3、decimal類型

 

    decimal類型專門用於進行財務計算,使用decimal類型提供的28位的方式取決於使用者。

    要把數字指定為decimal類型,可以在數位後面加上字元M或(m),如:

    decimal d=12.30M;

 

    4、bool(布爾)類型

 

 

    5、char字元類型

     char類型的字變數是用單引號括起來的。     如‘A‘

     如果把字元把在"A"(雙引號)內,編譯器會把它看作是字串,從而產生錯誤。

 

    6、參考型別(Object類型和字串類型)

 

 三、如何聲明變數和賦值

   1、變數的定義:是指在程式的運行過程中隨時可以發生變化的量

    2、上面我們提到,變數在運行時當中是存在記憶體當中的,它是一個臨時的存放場所。

         那麼在記憶體當中,可以存放如數字、字串、日期等等各種類型的資料。

 

 

大家可以看一看這張圖,它就把表示記憶體當中的一個狀態。

 

簡單的來說,變數就是表示記憶體當中的一Block Storage地區。

 

它會對應一個唯一的記憶體位址,但是我們在使用程式當時候,記憶體位址不好理解也不好記憶。

那麼怎麼辦呢?

 

在日常生活當中我們都有一個名字,如"張三“、”李四“等,這些名字就是為了便於記憶。

那麼同樣,在程式當中,為了區別多個變數,那就需要為每個變數賦值一個簡短,便於記憶的名字,

這就是變數名

 

     3、 C#中的變數的命名是是有規則的:

         1)、由字母、數字或底線"_"組成

         2)、必須由字母底線"_"開頭,不能以數字開頭

         3)、不能是c#中的關鍵字 如:int、string、bool、Main、class等 

         4)、區分大小寫  如:小寫a  和  大寫的A 是兩個變數

     

      4、做為一個比較好的學習者,就必須遵守一些變數命名規範:

           1)、變數的名字要有意義,盡量用對應的英語命名,具有“見名知意“的作用。

                  如:姓名   變數取名為 name 或者 用拼單  xingMing,避免用a,b,c來進行命名。

           2)、避免使用單個字元作為變數名( 除在迴圈裡面定的變數)

           3)、當使用多個單片語成變數名時,應該使用駱駝(Camel)命名法

                   駱駝(Camel)命名法:第一個單詞的首字母小寫,其它單詞的首字母大寫,如:myName,myAge

           

          選擇題:以下變數命名正確的是(     )

                  A、name、 _222*1、 9class、 public

                  B、_teacher、 void、 string、 myName

                  C、$Age、 corss、 fire、 _grade

                  D、_glass、 g23、 c_12、 my_first_2

 

 

      5、變數的聲明和賦值

          1)定義變數的文法:

            資料類型    變數名;      (定義一個年齡的變數,年齡是整數,所以變數定義如下:)

              int          age;         [系統會根據資料類型,在記憶體中分配不同大小的儲存空間]

 

             每個資料類型後面,可以定義多個變數,如:(定義姓名、家庭地址、籍貫、民族)

                string name,address,origin,national ;

            

           2)為變數賦值文法:

                =           

              (這裡的=號表示賦值運算子,把=號右邊的值,賦值給左邊的變數名,最後以一個;[分號]結束)

               如:年齡18歲,姓名為“小張",家庭地址為“重慶南坪XXX",

                      籍貫為“重慶",民族為“漢"

                age = 18 ;

                name = "小張" ;

                address = "重慶南坪XXX" ;

                origin = "重慶" ;

                national = "漢" ;

 

 四、變數和常量的區別

         變數:是指在程式的運行過程中隨時可以發生變化的量

        常量:是指在程式在運行過程中不會發生變化的變數

         

          常量的特點:

                   1、必須在聲明是賦值

                   2、不能在在程式運行時,給常量賦值

                   3、常量是靜態。不必須(實際上,是不允許)在常量聲明中包含修飾符static 

        

 五、不同資料類型之間是如何轉換的

       在C#中資料類型轉換分為兩種:1)隱式[又叫自動]類型轉換     2)顯式[又叫強制]類型轉換

           舉個簡單例子:

           飛機場裡面停飛機,這是理所當然,我們把這種叫做隱式[又叫自動]類型轉換

   

           那如果我們反過來看一看,飛機裡面裝飛機場,這個在我們實際生活中,覺得這是根據不可能的,

           但是程式可能做到這一點,我們把這種叫做顯式[又叫強制]類型轉換

 

       在C#中資料類型轉換分為兩種:1)隱式[又叫自動]類型轉換     2)顯式[又叫強制]類型轉換

           舉個簡單例子:

           飛機場裡面停飛機,這是理所當然,我們把這種叫做隱式[又叫自動]類型轉換

   

           那如果我們反過來看一看,飛機裡面裝飛機場,這個在我們實際生活中,覺得這是根據不可能的,

           但是程式可以做到這一點,我們把這種叫做顯式[又叫強制]類型轉換

 

           double和int之間就是(飛機場與飛機)這種關係,我們可以這樣理解,double的取值範圍比int要大得多

           所以double可以裝得下int :

          int a=1234;   

          double b=a;   系統會把a整型變數的值賦值給double變數b.這就是隱式[又叫自動]類型轉換

 

         那反過來:

         double a=1234;

         int b=a;        //系統編譯時間會報錯,:

          

        

           那如何進行強制轉換呢?c#提供了非常簡便的方法,如:

          double a=1234;

          int b=(int)a;      //這樣就強制把double類型,轉換為int類型

 

         最後,再介紹一下,其它資料類型之間的轉換(1、字串轉換為其它類型   2、任意類型之間的轉換)

         1)、字串轉換為其它類型       

       文法:

        XX.Parse(字串);         這裡的xx代表的如:double,int,bool等

         舉個例子來說明一下:

          string strValue="123.45";     //這是一個字串,時面的值是"123.45"

          現要把它轉換成小數類型,就可以使用double.Parse();來進行轉換

         double dValue=double.Parse(strValue);

 

       2)、任意類型之間的轉換

        文法:     

         Convert.ToXX(任何類型);

 

         如:把一個布爾類型轉換為整型

                  bool a = true;
                  int b = Convert.ToInt16(a);
                 Console.WriteLine("轉換後的結果是:"+b);  //轉換後的結果是:1

 

    ok, 經過以上的學習,我相信大家對C#的一些基礎知識有一定的瞭解,那麼下一章我將介紹C#的算術運算子、邏輯運算子、關係運算子,以及控製程序流的語句。

 

C#基礎--之資料類型【轉】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.