【发布时间】:2015-11-19 20:42:48
【问题描述】:
是否可以覆盖ToString(),所以当声明为静态时,它会返回自己的实例名称?
我只在设计时需要这个,而不是在执行期间。
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 中选择一个静态类See my other question
-
什么是
myButton2.Reference? -
@David:引用是 S7-PLC 中变量的表示。我想为visual studio创建一个HMI框架,“Reference”用于将HMI控件连接到PLC中的标签。它包含用于写入和读取此标签的所有功能和数据(对于按钮,这将是 BOOL,在按下时设置并在释放时重置)
-
引用是 MyVar 类型
标签: c# design-time