这是一个混乱的场景。 基本上,我试图设置一个button的颜色,当我使用setter为一个私有variables,我存储它的颜色。
首先,我有一个独立的窗口来定制东西。 当我改变button的颜色,我想改变这个窗口中的每个button。 我有它存储在我的主窗体类的静态variables。
public static frm_custom customizer;
这是所讨论的variables的setter。
private Color _buttonColor; public Color buttonColor { get { return this._buttonColor; } set { this.btn_input.BackColor = buttonColor; this._buttonColor = buttonColor; if (Application.OpenForms.OfType<frm_custom>().Count() == 1) { customizer.setButtonColor(buttonColor); } } }
奇怪的是,它根本不影响颜色。 我做错什么了吗?
我做错什么了吗?
是。 你的setter只是获取现有的属性值:
this.btn_input.BackColor = buttonColor; this._buttonColor = buttonColor;
你打算使用value
,这是setter的隐式参数名称:
this.btn_input.BackColor = value; this._buttonColor = value;
(同上, if
你的if
块,但很难说这是如何工作,因为它不是有效的C#目前。)
作为一个侧面说明,我强烈要求你开始遵循.NET命名约定,其中包括大写字母的属性 – 所以ButtonColor
而不是buttonColor
。