程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 深入解析C#編程中的事件(5)

深入解析C#編程中的事件(5)

編輯:關於C語言

可選的構造函數參數

構造函數的this(...) 形式通常用於與實現可選的構造函數參數的關聯上。在這個例子中

class Text
{
 public Text(): this(0, 0, null) {}
 public Text(int x, int y): this(x, y, null) {}
 public Text(int x, int y, string s) {
  // Actual constructor implementation
 }
}

前兩個構造函數只是為丟失的參數提供了默認的數值。兩個都使用了一個this(...)構造函數的初始化函數來調用第三個構造函數,它實際上做了對新實例進行初始化的工作。效果是那些可選的構造函數參數:

Text t1 = new Text(); // Same as Text(0, 0, null)
Text t2 = new Text(5, 10); // Same as Text(5, 10, null)
Text t3 = new Text(5, 20, "Hello");

析構函數

析構函數是一個實現破壞一個類的實例的行為的成員。析構函數使用析構函數聲明來聲明:

一個析構函數聲明的標識符必須為聲明析構函數的類命名,如果指定了任何其他名稱,就會發生一個錯誤。

析構函數聲明的主體指定了為了對類的新實例進行初始化而執行的語句。這於一個有void返回類型的實例方法的主體相關。

例子

class Test
{
 static void Main() {
  A.F();
  B.F();
 }
}
class A
{
 static A() {
  Console.WriteLine("Init A");
 }
 public static void F() {
  Console.WriteLine("A.F");
 }
}
class B
{
 static B() {
  Console.WriteLine("Init B");
 }
 public static void F() {
  Console.WriteLine("B.F");
 }
}

會產生或者是下面的輸出:

Init A

A.F

Init B

B.F

或者是下面的輸出:

Init B

Init A

A.F

B.F

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved