2010-05-07 57 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

相关问题