C 入門一一this的幾種用法

2021-08-24 23:23:56 字數 2383 閱讀 4538

用法一:this代表當前例項物件

using system;

using system.collections.generic;

using system.linq;

using system.text;

}class program

catch (exception ex)

finally}}

}

執行結果:

golbalvalue-localvalue
用法二:用this串聯建構函式

using system;

using system.collections.generic;

using system.linq;

using system.text;

// this()對應無參構造方法test()

// 先執行test(),後執行test(string text)

public test(string text)

: this()

}class program

catch (exception ex)

finally}}

}

no parameter constructor

jack

parameter constructor

方法

三、用原始型別擴充套件方法

用途:擴充套件方法使您能夠向現有型別「新增」方法,而無需建立新的派生型別、重新編譯或以其他方式修改原始型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。

它們的第乙個引數指定該方法作用於哪個型別,並且該引數以 this 修飾符為字首。僅當您使用 using 指令將命名空間顯式匯入到源**中之後,擴充套件方法才位於範圍中。

定義和呼叫擴充套件方法:

1、定義乙個靜態類以包含擴充套件方法。該類必須對客戶端**可見。有關可訪問性規則的更多資訊,請參見訪問修飾符(c# 程式設計指南)。

2、將該擴充套件方法實現為靜態方法,並使其至少具有與包含類相同的可見性。

3、該方法的第乙個引數指定方法所操作的型別;該引數必須以 this 修飾符開頭。

4、在呼叫**中,新增一條 using 指令以指定包含擴充套件方法類的命名空間。

5、按照與呼叫型別上的例項方法一樣的方式呼叫擴充套件方法。

請注意,第乙個引數不是由呼叫**指定的,因為它表示正應用運算子的型別,並且編譯器已經知道物件的型別。您只需通過 n 為這兩個形參提供實參。

示例

下面的示例在 myextensions.stringextension 類中實現了乙個名為 wordcount 的擴充套件方法。該方法對 string 類進行操作,而該類被指定為第乙個方法引數。myextensions 命名空間被匯入到應用程式命名空間中,並且該方法是在 main 方法內呼叫的。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using extensionmethods;

namespace extensionmethods

, stringsplitoptions.removeemptyentries).length;}}

}", i);}}

}

方法四:索引器

索引器是一組get和set訪問器,與屬性類似。

//如下是乙個類的索引器的表現形式

string this[int index]

get}

索引器示例:

using system;

using system.collections.generic;

using system.linq;

using system.text;

class class1

set}

}, t1:", a[0], a[1]);

a[0] = 15;

a[1] = 20;

console.writeline("value -- t0:, t1:", a[0], a[1]);}}

}

執行結果:

value -- t0:0, t1:0

value -- t0:15, t1:20

請按任意鍵繼續. . .

C 入門一一Lambda表示式

定義 lambda表示式可以理解為乙個匿名方法,它可以包含表示式和語句,並且用於建立委託或轉換為表示式樹。使用 運算子,該運算子左邊是匿名方法的輸入引數,右邊是表示式或語句塊。用法一 建立委託 public class friend 事件處理函式,該函式需要符合dinnerhandler委託的定義 ...

using的幾種用法 C

using system using 引用命名空間 using system.collections.generic using system.text using system.io using system.data using system.data.sqlclient using syste...

c 中「?」的幾種用法

c 中 的幾種用法 1 可空型別修飾符 如 a b表示如果a為null則返回b,否則返回a 2 三元運算子 如 bool f false return f true?1 0 如果f為true則返回1,否則返回0 3 空合併運算子 如 a?b 當a為null時則返回b,a不為null時則返回a本身 a...