Возможно ли переопределить ToString()
, поэтому класс возвращает свое собственное имя-экземпляр, если объявлено static?Получение собственного имени статического экземпляра во время разработки
Мне это нужно только при разработке, а не во время исполнения.
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"
}
фона: Я хочу показать это имя в PropertyGrid дизайнера:
this.myButton2.Text = "myButton2";
this.myButton2.UseVisualStyleBackColor = true;
this.myButton2.Reference = Vars.b;//Should be displayed in the PropertyGrid as "b" or "Vars.b"
Конечно, я использую перечисления очень часто, но они не помогают здесь. В настоящее время я играю с помощью CodeDomSerializer и TypeConverter, чтобы сделать его возможным для выбора статического класса в propertygrid в режиме разработки [См. Мой другой вопрос] (http://stackoverflow.com/questions/33759065/selecting-static-fields-via -dropdown-at-designtime-in-c-sharp) – drvolcano
Что такое 'myButton2.Reference'? –
@David: Ссылка представляет собой представление тега в S7-PLC. Я хочу создать структуру HMI для визуальной студии, а «Ссылка» используется для подключения HMI-управления к тегу в ПЛК. Он содержит все функции и данные для записи и чтения этого тега (для кнопки this wold должен быть BOOL, который установлен на preess и сбрасывается при выпуске) – drvolcano