C# 中的構造函數
類的 構造函數 是類的一個特殊的成員函數,當創建類的新對象時執行。
構造函數的名稱與類的名稱完全相同,它沒有任何返回類型。
下面的實例說明了構造函數的概念:
using System; namespace LineApplication { class Line { private double length; // 線條的長度 public Line() { Console.WriteLine("對象已創建"); } public void setLength( double len ) { length = len; } public double getLength() { return length; } static void Main(string[] args) { Line line = new Line(); // 設置線條長度 line.setLength(6.0); Console.WriteLine("線條的長度: {0}", line.getLength()); Console.ReadKey(); } } }
當上面的代碼被編譯和執行時,它會產生下列結果:
對象已創建 線條的長度: 6
默認的構造函數沒有任何參數。但是如果您需要一個帶有參數的構造函數可以有參數,這種構造函數叫做參數化構造函數。這種技術可以幫助您在創建對象的同時給對象賦初始值,具體請看下面實例:
using System; namespace LineApplication { class Line { private double length; // 線條的長度 public Line(double len) // 參數化構造函數 { Console.WriteLine("對象已創建,length = {0}", len); length = len; } public void setLength( double len ) { length = len; } public double getLength() { return length; } static void Main(string[] args) { Line line = new Line(10.0); Console.WriteLine("線條的長度: {0}", line.getLength()); // 設置線條長度 line.setLength(6.0); Console.WriteLine("線條的長度: {0}", line.getLength()); Console.ReadKey(); } } }
當上面的代碼被編譯和執行時,它會產生下列結果:
對象已創建,length = 10 線條的長度: 10 線條的長度: 6
C# 中的析構函數
類的 析構函數 是類的一個特殊的成員函數,當類的對象超出范圍時執行。
析構函數的名稱是在類的名稱前加上一個波浪形(~)作為前綴,它不返回值,也不帶任何參數。
析構函數用於在結束程序(比如關閉文件、釋放內存等)之前釋放資源。析構函數不能繼承或重載。
下面的實例說明了析構函數的概念:
using System; namespace LineApplication { class Line { private double length; // 線條的長度 public Line() // 構造函數 { Console.WriteLine("對象已創建"); } ~Line() //析構函數 { Console.WriteLine("對象已刪除"); } public void setLength( double len ) { length = len; } public double getLength() { return length; } static void Main(string[] args) { Line line = new Line(); // 設置線條長度 line.setLength(6.0); Console.WriteLine("線條的長度: {0}", line.getLength()); } } }