C 中this關鍵字 呼叫本類成員

2021-09-08 14:52:01 字數 1245 閱讀 1266

關鍵字this有兩種基本的用法,一是用來進行this訪問,二是在宣告建構函式時指定需要先執行的建構函式。

一、this訪問

在類的例項建構函式和例項函式成員中,關鍵字this表示當前的類例項或者物件的引用。this不能用在靜態建構函式和靜態函式成員中,也不能在其他地方使用。

當在例項建構函式或方法內使用了與欄位名相同的變數名或引數名時,可以使用this來區別欄位和變數或者引數。下面的**演示了this的用法。

public class dog

public string name;

public int age;

public dog()

public dog(string name)       // 在這個函式內,name是指傳入的引數name

this.name = name;          // this.name表示欄位name

public dog(string name, int age) // 在這個函式內,name是指傳入的引數name

實際上,this被定義為乙個常量,因此,雖然在類的例項建構函式和例項函式成員中,this可以用於引用該函式成員呼叫所涉及的例項,但是不能對this本身賦值或者改變this的值。比如,this++,--this之類的操作都是非法的。

二、this用於建構函式宣告

可以使用如下的形式來宣告例項建構函式:

《訪問修飾符》 類名 (形式參數列) : this(實際參數列)

其中的this表示該類本身所宣告的、形式參數列與『實際參數列』最匹配的另乙個例項建構函式,這個建構函式會在執行正在宣告的建構函式之前執行。

比如:// thisandconstructor.cs

// 關鍵字this用於宣告建構函式

using system;

class a

public a(int n)

console.writeline("a.a(int n)");

public a(string s, int n) : this(0)

console.writeline("a.a(string s, int n)");

class test

static void main()

a a = new a("a class", 1);

將輸出:

a.a(int n)

a.a(string s, int n)

這說明,執行建構函式a(string s, int n)之前先執行了建構函式a(int n)。

C 中this關鍵字 呼叫本類成員

關鍵字this有兩種基本的用法,一是用來進行this訪問,二是在宣告建構函式時指定需要先執行的建構函式。一 this訪問 在類的例項建構函式和例項函式成員中,關鍵字this表示當前的類例項或者物件的引用。this不能用在靜態建構函式和靜態函式成員中,也不能在其他地方使用。當在例項建構函式或方法內使用...

C 中this關鍵字 呼叫本類成員

關鍵字this有兩種基本的用法,一是用來進行this訪問,二是在宣告建構函式時指定需要先執行的建構函式。一 this訪問 在類的例項建構函式和例項函式成員中,關鍵字this表示當前的類例項或者物件的引用。this不能用在靜態建構函式和靜態函式成員中,也不能在其他地方使用。當在例項建構函式或方法內使用...

C 中base關鍵字 呼叫父類成員

c 中base關鍵字在繼承中起到非常重要的作用。它與this關鍵字相比,this關鍵字代表當前例項。base關鍵字代表父類,使用base關鍵字可以呼叫父類的建構函式 屬性和方法。使用base關鍵字呼叫父類建構函式的語法如下 子類建構函式 base 引數列表 使用base關鍵字呼叫父類方法的語法如下 ...