2010-05-07 18 views
4

如何在C#中創建參數化屬性?我們如何在C#中創建參數化屬性?

public readonly string ConnectionString(string ConnectionName) 
{ 
    get { return System.Configuration.ConfigurationManager.ConnectionStrings[ConnectionName].ToString(); } 
} 
+5

有沒有你不想要使用此方法的原因是什麼?你試圖完成什麼看起來更像是一種方法的工作。 – desigeek 2010-05-07 04:32:08

+0

索引器通常用於通過鍵/索引查找集合類型中的元素。因此名稱索引器...您的情況似乎傾向於一種新方法GetConnectionStringFor(「MyConnection」) – Gishu 2010-05-07 04:33:52

+0

不,沒有這樣的理由。我只是想以另一種方式去做。 – 2010-05-07 04:33:55

回答

14

唯一的類型,你可以在C#創建參數屬性是indexer property

public class MyConnectionStrings 
{ 
    private string GetConnectionString(string connectionName) { ... } 

    public string this[string connectionName] 
    { 
     get { return GetConnectionString(connectionName); } 
    } 
} 

否則,只需要創建一個方法,而不是 - 這似乎是更接近你在找什麼。

+0

那麼索引器的用途是什麼? – 2010-05-07 04:33:17

+0

@Shantanu:想想'Dictionary '。爲了得到一個特定的值,你可以寫'var value = dictionary [key]'。這是一個索引屬性。它不僅僅是一個方法包裝器,但是再次,所有屬性也是如此。 – Aaronaught 2010-05-07 04:34:42

+0

Thx用於照明。 – 2010-05-07 04:37:52

相關問題