0 votes

IDictonary<string,IParameter>

Je suis IDictionary QueryParameters et je tente d'assigner des valeurs, mais je ne réussis pas.

Exemple de code:

public IDictionary QueryParameters 
{ 
  get 
  { 
     return new Dictionary(); 
  } 
}

Pouvez-vous fournir un exemple ou m'indiquer comment assigner des valeurs à IParameter, s'il vous plaît?

1voto

tanascius Points 22712

Le problème est que vous retournez une nouvelle instance à chaque fois. Essayez :

private readonly IDictionary m_QueryParameters = new Dictionary(); 

public IDictionary QueryParameters 
{ 
  get { return m_QueryParameters; } 
}

Maintenant, vous pouvez l'utiliser :

QueryParameters.Add( "clé", new Parameter() );

0voto

dalle Points 9083

Vous retournez une nouvelle instance IDictionary chaque fois que la propriété QueryParameters est appelée.

Vous devriez probablement conserver cette instance dans la classe contenant :

class Foo
{
  private IDictionary dict =
    new Dictionary();

  public IDictionary QueryParameters 
  { 
    get
    {
      return dict;
    } 
  }
}

et l'utiliser comme suit :

void SomeFunc
{
   Foo f = new Foo();
   f.QueryParameters.Add("nom", new Parameter());
   f.QueryParameters.Add("quelque chose d'autre", new Parameter());
}

0voto

Mark Points 21191

Je ne suis pas certain de ce que vous demandez car vous n'attribuez pas à IParameter qui est un type. Ce que vous faites, c'est créer une variable qui a un type de IParameter et y assigner. Pour être plus complet, je suppose que IParameter est une interface et donc vous avez besoin d'une classe concrète qui étend IParameter et de créer une instance de celle-ci.

Ainsi quelque part

class Parameter extends IParameter { ... }

Votre code

IDictionary dict = obj. QueryParameters(); // obtenir le dictionnaire depuis votre méthode Parameter para = new Parameter();

dict.Add("test", para);

Voir également la réponse de dalle pour des améliorations à votre classe montrée

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X