2010-05-07 6 views
4

Comment créer une propriété paramétrée en C#.Comment créer une propriété paramétrée en C#

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

Y at-il une raison que vous ne voulez pas utiliser une méthode pour cela? Ce que vous essayez d'accomplir ressemble plus au travail d'une méthode. – desigeek

+0

Les indexeurs sont généralement utilisés pour rechercher des éléments dans les types de collection à l'aide d'une clé/index. D'où le nom indexeurs ... Votre cas semble graviter vers une nouvelle méthode GetConnectionStringFor ("MyConnection") – Gishu

+0

Non, il n'y avait pas une telle raison. Je voulais juste le faire dans l'autre sens. –

Répondre

14

Le seul type de propriété paramétrés vous pouvez créer en C# est un indexer property:

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

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

Sinon, il suffit de créer une méthode plutôt - qui semble être plus proche de ce que vous recherchez.

+0

Quelle est l'utilisation de l'indexeur alors? –

+0

@Shantanu: Pensez à 'Dictionary '. Pour obtenir une valeur spécifique, écrivez 'var value = dictionary [key]'. C'est une propriété d'index. Ce n'est pas beaucoup plus qu'un wrapper de méthode, mais encore une fois, toutes les propriétés le sont aussi. – Aaronaught

+0

Merci d'avoir mis la lumière dessus. –

0

C# 4 allows this, mais seulement pour accéder aux propriétés COM externes ..

Questions connexes