枚舉(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(){}
}