Reportez-vous à un nom de propriété par variable

Est-il un moyen de faire référence à un nom de propriété avec une variable?

Scénario: Objet d'Un public, d'avoir propriété integer X un Z, donc...

public void setProperty(int index, int value)
{
    string property = "";

    if (index == 1)
    {
        //set the property X with 'value'
        property = "X";
    }
    else 
    {
        //set the property Z with 'value'
        property = "Z";
    }

    A.{property} = value;
}

C'est un exemple stupide, donc veuillez croire, j'ai un emploi pour cet.

  • Il est difficile de comprendre ce que vous essayez d'accomplir.
  • Vous pouvez le faire en utilisant le Système.La réflexion se Référer à cette stackoverflow.com/questions/619767/... par exemple.
  • Je suis plutôt curieux de savoir pourquoi vous faites quelque chose comme cela au lieu d'utiliser une propriété comme une propriété?
  • Si c'est possible, vous devez croire que cela peut être utile.
  • Je pense que tout peut être utile de donner le droit circonstancié, mais je suis curieux de savoir la raison. Êtes-vous essayer de définir la valeur de la propriété si elle EST une propriété spécifique? Un peu de contexte pourrait faire la lumière sur ce que le code ci-dessus est d'essayer
  • Il est bien sûr possible, et il y a des situations dans lesquelles il est approprié, mais ils sont rares. La réflexion est souvent mal utilisée par ceux qui ne savent tout simplement pas comment faire pour la conception de leur application correctement en premier lieu. En vous demandant pourquoi vous essayez de faire cela, il va déterminer si il vous indique comment utiliser la réflexion pour résoudre ce problème, ou comment éviter d'avoir ce type de problème en premier lieu par une bonne conception.
  • Si vous êtes seulement en train d'essayer de retarder l'acte de la définition de la propriété, voir ma réponse.
  • totalement. Maintenant que j'ai plus utilisé extrêmement complexes réflexion depuis que j'ai posté, je me rends compte combien ils ont négligé cette question.