我經歷別人的代碼,我看到這樣的說法:關於基本的C#類的問題了「this」關鍵字
public CustomClassName this [ string varName]
請原諒這個問題的newbness,但方括號把我摔下。 這是一個方法或構造函數嗎?
在這種情況下,「this」變量是如何工作的?
我經歷別人的代碼,我看到這樣的說法:關於基本的C#類的問題了「this」關鍵字
public CustomClassName this [ string varName]
請原諒這個問題的newbness,但方括號把我摔下。 這是一個方法或構造函數嗎?
在這種情況下,「this」變量是如何工作的?
它被稱爲索引器。 MSDN page.
它是一個索引器,因此您可以訪問類似於數組的類。
它正在爲您的類型定義一個索引運算符。舉例來說,List<T>
類。庫設計人員希望您能夠編寫如下代碼:
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
int x = list[2]; // x == 3
完成此操作的語法就是您在上面發佈的語法。所以,對於你自己的類型,你可以...
class NameCollection : /* whatever */
{
private List<string> _names = new List<string> { "Ed", "Sally", "John" };
public string this[int index]
{
get { return _names[index]; }
}
}
都不是,它是一個Indexer。它允許您執行CustomClassName [obj]並從對象中檢索值。
http://msdn.microsoft.com/en-us/library/2549tw02%28v=VS.100%29.aspx – luksan
所以就是這樣做! VB.NET的'Default'更清晰:) – Ryan
@minitech:非常值得商榷。我還沒有遇到過一個VB中的構造,我認爲它比C#寓言更清晰。 –