Est-il possible de surcharger ToString()
, donc une classe renvoie son propre nom d'instance, lorsqu'il est déclaré statique? Je n'ai besoin de cela qu'au moment de la conception, pas pendant l'exécution de la commande.Obtention du nom d'instance statique propre au moment du design
public class MyVar
{
public override string ToString()
{
return MY_NAME();
}
}
public class Vars
{
public static MyVar a = new MyVar(); //ToString() returns "a" or "Vars.a"
public static MyVar b = new MyVar(); //ToString() returns "b" or "Vars.b"
public static MyVar c = new MyVar(); //ToString() returns "c" or "Vars.c"
public static MyVar d = new MyVar(); //ToString() returns "d" or "Vars.d"
}
Contexte: Je veux montrer ce nom dans PropertyGrid du concepteur:
this.myButton2.Text = "myButton2";
this.myButton2.UseVisualStyleBackColor = true;
this.myButton2.Reference = Vars.b;//Should be displayed in the PropertyGrid as "b" or "Vars.b"
Bien sûr, j'utilise des énumérations très souvent, mais ils ne m'aident pas ici. Je suis actuellement en train de jouer avec CodeDomSerializer et TypeConverter, pour rendre posible de sélectionner une classe statique dans la grille de propriété au designtime [Voir mon autre question] (http://stackoverflow.com/questions/33759065/selecting-static-fields-via -dropdown-at-designtime-in-c-sharp) – drvolcano
Qu'est-ce que 'myButton2.Reference'? –
@David: La référence est une représentation d'une variable dans un automate S7. Je veux créer un framework HMI pour Visual Studio, et "Reference" est utilisé pour connecter le contrôle IHM à l'étiquette dans l'automate. Il contient toutes les fonctions et les données pour l'écriture et la lecture de cette balise (pour un bouton ce sera BOOL, qui est défini sur preess et réinitialisé à la sortie) – drvolcano