程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#語法練習(11): 類[三] - 構造函數、析構函數、base、this(3)

C#語法練習(11): 類[三] - 構造函數、析構函數、base、this(3)

編輯:關於C語言

靜態構造函數:

靜態構造函數既無訪問修飾符、無參數;

在 new 或調用任何靜態成員之前,將自動調用靜態構造函數;

靜態構造函數一般用於初始化靜態數據;

靜態構造函數會在第一次 new 或第一次使用靜態成員前觸發;

不能直接調用靜態構造函數.

using System;

class MyClass
{
   public static int Num;
   public static void ShowNum() { Console.WriteLine(Num); }
   public void Msg() { Console.WriteLine("Msg"); }

   static MyClass() { Num = 123; }
}

class Program
{
   static void Main()
   {
     MyClass.ShowNum();      //123
     MyClass.Num = 2009;
     MyClass.ShowNum();      //2009

     MyClass obj1 = new MyClass();
     obj1.Msg();         //Msg

     Console.ReadKey();
   }
}

自動調用父類的構造方法:

using System;

class Parent
{
   public Parent() { Console.WriteLine("Parent"); }
}

class Child1 : Parent
{
   public Child1() { Console.WriteLine("Child1"); }
   public Child1(int x) { Console.WriteLine(x); }
}

class Child2 : Child1
{
   public Child2() { Console.WriteLine("Child2"); }
   public Child2(int x, int y) { Console.WriteLine(x + y); }
}

class Program
{
   static void Main()
   {
     Parent p = new Parent();     // Parent
     Child1 c1 = new Child1();     // Parent / Child1
     Child2 c2 = new Child2();     // Parent / Child1 / Child2

     Child1 c11 = new Child1(999);   // Parent / 999
     Child2 c22 = new Child2(111, 222); // Parent / Child1 / 333

     Console.ReadKey();
   }
}

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