C#中枚舉,結構,可空類型,合併運算符,構造函數和析構函數

枚舉(Enum)
枚舉一組命名整型常量。枚舉類型是使用 enum 關鍵字聲明的。
C# 枚舉是值類型。換句話說,枚舉包含自己的值,且不能繼承或傳遞繼承。

聲明 enum 變量

聲明枚舉的一般語法:

enum <enum_name>
{ 
    enumeration list 
};

其中

enum_name 指定枚舉的類型名稱。
enumeration list 是一個用逗號分隔的標識符列表。

枚舉列表中的每個符號代表一個整數值,一個比它前面的符號大的整數值。默認情況下,第一個枚舉符號的值是 0.例如:

enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
using System;

public class EnumTest
{
    enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };

    static void Main()
    {
        int x = (int)Day.Sun;
        int y = (int)Day.Fri;
        Console.WriteLine("Sun = {0}", x);
        Console.WriteLine("Fri = {0}", y);
    }
}

來源: https://www.runoob.com/csharp/csharp-enum.html


結構(Struct)
在 C# 中,結構體是值類型數據結構。它使得一個單一變量可以存儲各種數據類型的相關數據。struct 關鍵字用於創建結構體。
類與結構不同點:
(1)類是引用類型,結構是值類型;
(2)結構不能繼承,不能聲明默認的構造函數;

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  
using System;
using System.Text;
     
struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  

public class testStructure
{
   public static void Main(string[] args)
   {

      Books Book1;        /* 聲明 Book1,類型爲 Book */
      Books Book2;        /* 聲明 Book2,類型爲 Book */

      /* book 1 詳述 */
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali";
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;

      /* book 2 詳述 */
      Book2.title = "Telecom Billing";
      Book2.author = "Zara Ali";
      Book2.subject =  "Telecom Billing Tutorial";
      Book2.book_id = 6495700;

      /* 打印 Book1 信息 */
      Console.WriteLine( "Book 1 title : {0}", Book1.title);
      Console.WriteLine("Book 1 author : {0}", Book1.author);
      Console.WriteLine("Book 1 subject : {0}", Book1.subject);
      Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);

      /* 打印 Book2 信息 */
      Console.WriteLine("Book 2 title : {0}", Book2.title);
      Console.WriteLine("Book 2 author : {0}", Book2.author);
      Console.WriteLine("Book 2 subject : {0}", Book2.subject);
      Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);      

      Console.ReadKey();

   }
}

來源: https://www.runoob.com/csharp/csharp-struct.html


可空類型(Nullable)
nullable類型(可空類型),可空類型可以表示其基礎值類型正常範圍內的值,再加上一個null值
例如,Nullable,讀作"可空的Int32",可以被賦值爲 -2,147,483,648到2,147,483,647之間的任意值, 也可以被賦值爲null值。類似的,Nullable變量可以被賦值爲true或false或null。
在處理數據庫和其他包含可能未賦值的元素的數據類型時,將null賦值給數值類型或布爾型的功能特別有用。例如,數據庫 中的布爾型字段可以存儲值true或false,或者,該字段也可以未定義。
聲明一個 nullable 類型(可空類型)的語法如下

int i = 0;
//Nullable<int> j = null; int? j = null;
Console.WriteLine("i的值是"+i); // 0
Console.WriteLine("j的值是"+j); // 
 Console.ReadLine(); 

Null 合併運算符( ?? )
Null合併運算符用於定義可空類型和引用類型的默認值。
Null合併運算符爲類型轉換定義了一個預設值,以防可空類型的值爲Null。Null合併運算符把操作數類型隱式轉換爲另一 個可空(或不可空)的值類型的操作數的類型。

int? i = null; int? j = 123; int k = i ?? 100;
Console.WriteLine(k);   // 100
 Console.WriteLine(i); k = j ?? 101;
Console.WriteLine(k);  // 123
Console.WriteLine(j); // 123
Console.ReadLine();

構造函數
類的構造函數是類的一個特殊的成員函數,當創建類的新對象時執行。當實例化一個類對象的時候自動調用這個函數
聲明:

class Student
{
	 public Student()
	 {
	 }
}

析構函數
類的析構函數是類的一個特殊的成員函數,當類的對象超出範圍時執行。當這個類對象被釋放的時候會被自動調用這個函數
聲明:

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