C#類型與變量

C#入門筆記

8.28開始看劉鐵猛的視頻,到9.22看完。大概以爲本身入門了,對OOP也有必定了解了,稍微寫點筆記,當複習了。面試

類型與變量

數據類型

數據類型[1]是數據在內存中存儲時的「型號」。不一樣的數據類型有不一樣的「大小」——在內存中佔用的空間,想知道某個數據類型在內存中佔的大小,能夠用函數sizeof去查看。C#是強類型語言,某個變量一旦被定義,若是不通過強制類型轉換,它的類型永遠不會改變。下面用一段代碼證實:c#

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

namespace SomeNotes
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 100;
            double b = 200;
            string c = "Jay";
            Console.WriteLine(a.GetType());
            Console.WriteLine(b.GetType());
            Console.WriteLine(c.GetType());
        }
    }
}

結果爲: System.Int32
System.Double
System.String數組

下面試着進行強制類型轉換:ide

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

namespace SomeNotes
{
    class Program
    {
        static void Main(string[] args)
        {
            double a = 12.34;
            int b = (int)a;
            decimal c = (decimal)a;
            Console.WriteLine(b);
            Console.WriteLine(c);
        }
    }
}

這個例子裏面double類型的 a 被強制轉換成了int類型,而後再把值傳給 b ,輸出結果爲12,小數點後的數字丟失。
各個類型的精度範圍不同,若是用精度更精細的數據類型轉換成精度不高的數據類型,是必定會發生數據丟失的。可是精度低的數據類型轉換爲精度高的數據類型則沒有影響。
好比double類型的 a 被強制類型轉換成了decimal類型,而後再把值傳給 c ,輸出結果爲12.34,徹底沒有影響。
在C#中,有五大數據類型:類(class)、結構體(structure)、枚舉(enumeration)、接口(interface)、委託(delegate)。其中類、接口、委託是引用類型(reference type),結構體和枚舉是值類型(value type)。函數

變量

其實剛剛的兩個例子當中就出現變量了,就是 a、b、c。變量實際上表示了存儲位置,而且每一個變量都有一個類型,以決定什麼樣的值可以存入變量。變量一共有7種:靜態變量、實例變量、數組元素、值參數、引用參數、輸出參數、局部變量。其實狹義上的變量指的就是局部變量,由於其餘種類的變量都有本身的約定的名稱,簡單的說,局部變量就是方法體(函數體)裏面聲明的變量。
* 值類型的變量沒有實例,所謂的「實例」與變量合二爲一
* 引用類型的變量裏儲存的數據是對象的內存地址大數據

在C#中變量有它的默認值,好比bool類型的默認值是falsedouble類型的默認值是 0.0d 等等,這些建議百度本身搜。
變量還有常量類型,指的是值不可被改變的變量。constreadonly的不一樣之處在於,const在聲明的時候就要賦值,readonly能夠先聲明,後續賦值;相同之處在於,二者一旦被賦值,就不可被更改。ui

摸了,有空再更新


  1. Data Type: A data type is a homogeneous collection of values, effectively presented, equippde with a set of operations which manipulate these values. ↩︎spa

相關文章
相關標籤/搜索