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

C#高級(三)構造函數(1)

編輯:關於C語言

構造函數是和類名相同的類的一個方法,如果沒有顯式的聲明,在系統會在編譯的時候,自動生成一 個不帶參數的,不執行任何動作的構造函數。

但如果顯式的聲明了構造函數,系統就不會自動生成了。如果聲明的構造函數是有參數的構造函數, 我們在實例化類的時候,就必須以該構造函數而實例化類。看下面的代碼:

using System;
namespace gosoa.com.cn
{
public class test
{
public int num;
public test (int i)
{
this.num=i+5;
}
static void Main()
{
test classOne=new test(10);
int x=classOne.num;
Console.WriteLine(x);
}
}
}

如上代碼,在實例化類的時候,test classOne=new test(10); 傳遞了一個參數。如果我們test classOne=new test();這樣來實例化類,就會報錯了。因為我們顯式的聲明了一個帶參的構造方法,new test() 這樣實例化的時候,調用的是無參的構造函數,但類中卻沒有無參的構造函數。

我們再來看一下靜態構造函數。

在C# 中我們可以給類定義一個無參的靜態構造函數(注意,必須是無參的),只要創建類的對象,該 方法就會執行。該函數只執行一次,並且在代碼引用類之前執行。

一般,在類中有一些靜態字段或者屬性,需要在第一次使用類之前從外部數據源初始化這些靜態字段 和屬性,這時,我們就采用靜態構造函數的方式來解決。

靜態構造函數沒有訪問修飾符,其他C#代碼也不調用它,在加載類時,總是由.Net 運行庫調用它。一 個類只能有一個靜態構造函數。

注意,無參的實例構造函數可以和靜態構造函數在類中共存。因為靜態構造函數是在加載類的時候執 行的,而實例構造函數是在創建實例時執行的,兩者並不沖突。

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