2024-05-21|閱讀時間 ‧ 約 29 分鐘

C#入門-Day4:資料型別

    內建型別

    參考文章:https://learn.microsoft.com/zh-tw/dotnet/csharp/language-reference/builtin-types/built-in-types

    bool

    布林值,表示真或假。範例:bool isValid = true;

    byte

    8位元的無符號整數,範圍從0到255。範例:byte number = 255;

    sbyte

    8位元的有符號整數,範圍從-128到127。範例:sbyte number = -128;

    char

    16位元的Unicode字符。範例:char character = 'A';

    decimal

    128位元的精確十進位值,範圍從±1.0 x 10^-28 到 ±7.9 x 10^28。範例:decimal percentage = 99.99M;

    double

    64位元的雙精度浮點數。範例:double pi = 3.141592653589793238;

    float

    32位元的單精度浮點數。範例:float pi = 3.14F;

    int

    32位元的有符號整數。範例:int age = 30;

    uint

    32位元的無符號整數。範例:uint positiveNumber = 3000000000;

    nint

    一個原生大小的有符號整數。範例:nint number = -500;

    nuint

    一個原生大小的無符號整數。範例:nuint number = 500;

    long

    64位元的有符號整數。範例:long bigNumber = 5000000000L;

    ulong

    64位元的無符號整數。範例:ulong bigPositiveNumber = 10000000000UL;

    short

    16位元的有符號整數。範例:short number = 32767;

    ushort

    16位元的無符號整數。範例:ushort number = 65000;

    object

    為參考型別,您可以將任何型別的值指派給 object 型別的變數。

    string

    為參考型別,string 類型代表零或多個 Unicode 字元序列。 string 是 System.String 在 .NET 中的別名。雖然 string 是參考型別,但是會定義等號比較運算子 == 和 != 來比較 string 物件的值,而不是參考。 比對值的等式能讓字串等式的測試更為直覺性。

    dynamic

    為參考型別,dynamic 型別指出使用變數和對其成員的參考,會略過編譯時間型別檢查。 相反地,這些作業會在執行階段解決。

    在大多數情況下,dynamic 類型的行為與 object 類型類似。 特別是,任何非 Null 運算式都可轉換成 dynamic 型別。 dynamic 類型與 object 的不同之處在於,包含類別 dynamic 的運算式作業,編譯器不會對其進行解析或類型檢查。

    型別轉換

    參考文章:https://learn.microsoft.com/zh-tw/dotnet/csharp/programming-guide/types/casting-and-type-conversions

    隱含轉換

    不需要任何特殊語法,因為轉換一律會成功,而且不會遺失任何數據。 範例包括從較小到較大整數型別的轉換,以及從衍生類別到基底類別的轉換。

    // Implicit conversion. A long can
    // hold any value an int can hold, and more!
    int num = 2147483647;
    long bigNum = num;

    明確轉換(強型轉換)

    明確轉換需要強制型轉運算式。 如果資訊可能會在轉換時遺失,或轉換因其他原因而失敗,則需要轉換。

    double x = 1234.7;
    int a;
    a = (int)x;

    自訂型別

    您可以使用 struct、class、interface、enum 和 record 建構來建立您自己的自訂型別。 .NET 類別庫本身是自訂型別集合,可供您用於自己的應用程式中。 根據預設,類別庫中最常使用的型別可用於任何 C# 程式中。

    元組型別(Tuple)

    新增元組

    在C#中,我們可以通過宣告一個變數並將其賦值為一個元組來創建新的元組。例如:

    var newTuple = (5, "example", 10.5);
    (double, int) t1 = (4.5, 3);
    (double Sum, int Count) t2 = (4.5, 3);

    在這個例子中,我們創建了一個新的元組newTuple,它包含了三個元素:一個整數、一個字符串和一個雙精度浮點數。

    修改元組

    元組是不可變的,這意味著我們不能修改元組中的元素。一旦元組被創建,它的值就不能被改變。如果我們需要修改元組中的某個值,我們需要創建一個新的元組來取代舊的元組。例如:

    var oldTuple = (5, "example", 10.5);
    var newTuple = (6, oldTuple.Item2, oldTuple.Item3);

    在這個例子中,我們創建了一個新的元組newTuple,它的第一個元素被改為6,其餘元素保持不變。

    刪除元組

    由於元組是不可變的,我們也無法刪除元組中的元素。如果我們不再需要某個元組,我們可以通過將其設置為null或者讓它超出其作用域來實現“刪除”。例如:

    var myTuple = (5, "example", 10.5);
    myTuple = null;

    在這個例子中,我們將myTuple設置為null,這樣它就不再指向原來的元組。

    集合型別(List)

    創建 List

    List<int> numbers = new List<int>();

    添加元素至 List

    numbers.Add(1);

    修改 List 中的元素

    numbers[0] = 2;

    在 List 中刪除元素

    numbers.Remove(2);
    // 或者
    numbers.RemoveAt(0);

    陣列型別(Array)

    創建陣列

    下列範例會建立一維陣列、多維陣列和不規則陣列︰

    // Declare a single-dimensional array of 5 integers.
    int[] array1 = new int[5];

    // Declare and set array element values.
    int[] array2 = [1, 2, 3, 4, 5, 6];

    // Declare a two dimensional array.
    int[,] multiDimensionalArray1 = new int[2, 3];

    // Declare and set array element values.
    int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

    // Declare a jagged array.
    int[][] jaggedArray = new int[6][];

    // Set the values of the first array in the jagged array structure.
    jaggedArray[0] = [1, 2, 3, 4];

    修改陣列中的元素

    numbers[0] = 1;

    訪問陣列中的元素

    int firstNumber = numbers[0];

    請注意,C#中的陣列是固定大小的。這意味著一旦創建了一個陣列,我們就不能添加或刪除元素,也不能更改陣列的大小。如果需要更靈活的數據結構,可以考慮使用List或其他集合類型。

    字典型別(Dict)

    創建字典

    在C#中,我們可以使用Dictionary<TKey, TValue> 類型來創建新的字典。例如:

    Dictionary<string, int> dictionary = new Dictionary<string, int>();

    訪問字典中的值

    我們可以使用鍵(key)來訪問字典中的值。例如:

    dictionary["example"] = 10;
    int value = dictionary["example"]; // value = 10

    添加或修改鍵值對

    我們可以使用鍵(key)將新的值添加到字典中,或修改字典中已存在的值。例如:

    dictionary["example"] = 20; // 修改鍵值對
    dictionary.Add("newExample2", 30); // 新增鍵值對

    刪除鍵值對

    我們可以使用Remove方法刪除字典中的鍵值對。例如:

    dictionary.Remove("example"); // 刪除"example"的鍵值對
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.