C#學習日記03---數據類型

C#數據類型

    C#語言是一種強類型的語言,在程序中用到的變量、表達式、數值等都必須要有類型。對於程序中每一個用於保存信息的量,使用時我們都必須聲明他的數據類型,以便編譯器爲他分配內存空間。C#的數據類型可以分爲兩大部分:值類型和引用類型(常用的2個  String 和 Object)。

     由於C#強類型的特點,因此在C#中一種數據類型也就是一個類。比如 整型 int他的真名爲System.Int32();

    

基本數據類型 (別名) FCL數據類型(真名) 說明
objesct  System.Objest 所有其它類型的基類型
string System.String Unicode字符序列
decimal System.Decimal 有28位小數的高度精度浮點數
bool System.Boolean true或false
char   System.Char 16位Unicode字符
byte  System.Byte  8位無符號整型
short System.Int16  16位有符號整型
int  System.Int32 32位有符號整型
long  System.Int64  64位有符號整型
ushort  System.Uint16 16位無符號整型
uint System.Uint32 32位無符號整型
ulong  System.Uint64  64位無符號整型
single(float) System.Single 單精度浮點類型
double System.Double  雙精度浮點類型
sbyte  System.Sbyte 8位有符號整型


        由上表我們看的出,基本類型直接映射到基類庫中的類型,因此兩者之間可以互換,也就是說我們定義一個int型的變量,

                                 int x = 12;    (發現與C/C++定義數據類型類似)

  可以寫成這樣:  System.Int32 x = new System.Int32(12);

    不同的類型定義的範圍也有所不同:

名稱 範圍
sbyte -2^7~2^7-1
short -32768~32767
int -2^31~2^31-1
long -2^63~2^63-1
byte 0~2^8-1
ushort 0~2^16-1
uint 0~2^32-1
ulong 0~2^64-1
   
char 表示一個16位的字符










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

    double數據類型比float數據類型大,提供的精度也大一倍(15位)。在C#編譯器一般默認小數類型爲double類型,

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

         float f = 12.3F;

   

decimal類型專門用於進行財務計算,高精度(28位)。

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

    decimal d=12.30M;




C#變量名命名規則:

   

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

         2)、必須由“字母”下劃線"_"開頭,不能以數字開頭

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

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


  下面就寫個例子吧,要求由用戶輸入 姓名  年齡  身高  工資 性別然後輸出“我的名字是:XX,性別是:XX,今年XX歲,身高是:XX,工資是:XX”

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            String name;  //定義姓名爲name
            char sex;   //定義性別 
            uint age;   //年齡(年齡不能爲負數)
            double hight;  //身高
            decimal salary;//工資
                Console.WriteLine("你叫什麼名字啊?");
               name = Console.ReadLine();   //輸入姓名

             Console.WriteLine("你的性別是:");
            sex = Console.ReadKey().KeyChar;  //寫入性別
            Console.WriteLine();   //換行

            Console.WriteLine("你多大了?");
            age =uint.Parse(Console.ReadLine());  //寫入年齡(uint.Parse()是將讀入的String類型轉爲uint類型,ReadLine()                                                    //的返回值是String 類型)

            Console.WriteLine("多高啊?");
            hight = double.Parse(Console.ReadLine());  //寫入身高

            Console.WriteLine("工資多少呀?");
            salary = decimal.Parse(Console.ReadLine());  //寫入工資

            Console.WriteLine("我叫{0},是個{1}孩子,今年{2}歲了,我的身高是{3}米,工資有{4}元",name,sex,age,hight,salary);       //輸出信息


        }
    }
}


 得到的結果是:


  唉! 又是這種黑麪框,黑咕隆咚的醜死,以後學了Winform應該會好點吧 !

 基於02日記中的輸入與輸出,通過查閱又get了一項新的輸出技能,在上面的最後一行代碼中有 {0},{1},{2}。。。可以有很多個,這一對“{}”叫佔位符,,,(以下是我個人理解)就是我們在程序輸出的時候挖 的一個又一個坑,然後再用第一個參數(“”中的內容是一個String類型的參數,參數與參數之間用逗號“,”隔開)後面的參數按順序去填好  (有點俗阿)。   

   本着學無止境的探索精神,我又對他進行了一番探索;    當我們用佔位符 的時候一定要按照{0},{1},{2}......這個順序來嗎?我試着改一下還是以上的代碼,,後面的順序改爲這樣  {0},{3},{1},{2},{10}。編譯沒有抱錯但是運行輸出的時候打印不出來,可能就是那個10的問題,原來不能跳着挖坑的,那就這樣   {0},{3},{1},{2},{4},這次沒跳了,交換了順序,編譯沒錯能運行,但是結果是這樣:


完全喪失常理 了 結果亂了。仔細觀察後發現其實那個0,1,2,3,4是 給後面參數編的序號,{}裏面是誰的序號就調用誰。

   本着每日三省吾身的好學精神我又有疑惑了,在02日記中我輸出aaa與bbb的時候我用了雙引號 “” 表示字符串,但是如果我想輸出雙引號該咋辦呢?想了好久,去網上查了下才知道 可以用\加符號就可以輸出啦,於是我寫了個不要臉的程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
                       Console.WriteLine("女神對我說:\"I Love You!!!\"");

        }
    }
}

結果是:


(哈哈,,沒羞沒臊的)總之 雙引號是成功輸出來了

     本着做一個勇於探索的人,我又發現:輸出雙引號的時候我用  \  來不讓他轉義 ,那要是我想輸出 \ 該咋辦呢?

可能是在 \ 前面再加個 \ 試了下沒錯 \\能夠 輸出 \ 所以要輸出\\就得\\\  以此類推  感覺挺麻煩的,於是又找了個一勞永逸

的方法  “@"  ,,,Console.WriteLine(@"\\\");

結果輸出     \\\   不變















發佈了39 篇原創文章 · 獲贊 7 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章