在 C# 中,有兩種類型:值類型和引用類型。其中,值類型是將值存儲在它們分配給的變量中,而引用類型是將一個對象引用存儲在變量中。本文將以引用類型包括哪些為中心,從多個方面對它作詳細的闡述。
一、引用類型包括哪些類型
C# 引用類型包含兩大類:類 (class) 和 接口 (interface)。在對象實例化時,類通過引用來表示,而接口通過它們的實現類來引用。接口也可以被直接引用,並在調用類似方法的實現時之後進行實例化。除了類和接口之外,在 C# 中,還有一些特殊的引用類型:
- 委託 (delegate):這是存儲對特定方法的引用的類型。當需要多個方法在其他作用域中調用時,委託是一個非常有用的工具。
- 數組 (array):數組是一個表示特定類型的值類型的連續集合。它們通過使用基礎類型的單個引用實現。
- 枚舉 (enum):枚舉是一種值類型,它列出了一組命名整數值。
二、C# 引用類型有哪四種
C# 引用類型可以分為四種類型:
- 類 (class):類是由程序員定義的結構。它擁有一個名稱、成員和方法。
- 接口 (interface):接口定義了一組功能,但沒有它們的實現。它們通常由實現它們的類定義。
- 數組 (array):數組是一組元素的有序集合,每個元素都可以通過使用一個索引值來訪問。
- 委託 (delegate):委託是指向一個或多個方法的引用。
三、C# 引用類型包括哪些
C# 引用類型包括類、接口、數組和委託以外的其他對象。 “其他” 引用類型不同於 .NET 中的基礎類型。這些類型包括字符串、集合類和 LINQ 類。
四、引用類型有哪三種
在 C# 中,引用類型可分為三類:
- 包裝器類型 (wrapper type):這些類型用於將值類型封裝為對象,例如 System.Int32 和 System.Boolean。
- 對象類型 (object type):這些對象是 C# 中的標準引用類型。例如 Object 和 String。
- 動態類型 (dynamic type):這是一種弱類型,在編譯時不確定類型,而是在運行時才確定。
五、引用類型有哪四種
除了前文提到的三種引用類型,C# 中還有一種稱為 Nullable 的第四種引用類型。Nullable 類型允許變量擁有 null 值,而不是不確定的值。
六、代碼示例
using System; using System.Collections.Generic; namespace ReferenceTypes { class Program { static void Main(string[] args) { // 類 Person person = new Person("John", "Doe"); Console.WriteLine(person.FullName()); // 接口 ITaxCalculator calculator = new TaxCalculator(); double tax = calculator.CalculateTax(50000); Console.WriteLine($"Tax: ${tax}"); // 數組 int[] numbers = { 1, 2, 3, 4, 5 }; Console.WriteLine($"Length: {numbers.Length}"); // 委託 Func<int, int, int> addFunc = (a, b) => a + b; Console.WriteLine($"Result: {addFunc(3, 4)}"); // 其他 string text = "Hello, World!"; Console.WriteLine(text.Length); List<int> numbersList = new List<int> { 1, 2, 3, 4, 5 }; Console.WriteLine($"Count: {numbersList.Count}"); int[] numbersLinq = { 1, 2, 3, 4, 5 }; var linqQuery = from number in numbersLinq where number % 2 == 0 select number; Console.WriteLine(linqQuery.Count()); } } class Person { private string firstName; private string lastName; public Person(string firstName, string lastName) { this.firstName = firstName; this.lastName = lastName; } public string FullName() { return $"{firstName} {lastName}"; } } interface ITaxCalculator { double CalculateTax(double income); } class TaxCalculator : ITaxCalculator { private const double TaxRate = 0.1; public double CalculateTax(double income) { return income * TaxRate; } } }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/283095.html