我可以将DefaultValue设置为Color.Empty吗?

本文关键字:Empty Color DefaultValue 设置 我可以 | 更新日期: 2023-09-27 18:14:22

下面的代码总是在我的Designer.cs文件中生成一个显式的属性赋值:

[Category("Appearance"), DefaultValue(typeof(Color), "Empty")]
public Color PropertyBackColor
{
    get { return propertyBackColor; }
    set { propertyBackColor = value; }
}
Color propertyBackColor = Color.Empty;

我在我的designer .cs文件中得到这个,如果设计器不理解DefaultValue。

this.textBox2.PropertyBackColor = System.Drawing.Color.Empty;

它适用于任何实际颜色。Color.Empty.

我可以将DefaultValue设置为Color.Empty吗?

默认值可以由ShouldSerialize方法定义。参见在MSDN上使用ShouldSerialize和Reset方法定义默认值。

本例的示例代码(改编自上面的链接)

    [Category("Appearance")]
    public Color PropertyBackColor
    {
        get { return propertyBackColor; }
        set { propertyBackColor = value; }
    }
    Color propertyBackColor = Color.Empty;
    public bool ShouldSerializePropertyBackColor()
    {
        return propertyBackColor != Color.Empty;
    }
    public void ResetPropertyBackColor()
    {
        propertyBackColor = Color.Empty;
    }

我认为,方法ShouldSerialize和Reset可以私有或保护