http://baike.baidu.com/view/2634573.htm?fr=aladdin
在百科上看到C#的新特性靜態構造函數,其中提到靜態構造函數“不能繼承” 今天做了個試驗,發現實際上靜態構造函數是可以繼承的,代碼如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 靜態構造函數{ public class Parent { PRotected static int var1; static Parent() { var1 = 100; } } public class Child:Parent { public int GetVar1() { return var1; } } class Program { static void Main(string[] args) { Console.WriteLine(new Child().GetVar1()); Console.ReadKey(); } } }運行結果顯示100 說明雖然是父類的靜態構造函數 但是在創建子類實例前這個靜態構造函數也被調用過了
另外一種情況是帶有static修飾的類,因為同時被定義為sealed,也就是靜態類,是不能被繼承的,因而也無所謂它的靜態構造函數是否能繼承了。
新聞熱點
疑難解答