gpt4 book ai didi

c# - 在 Designer : Property default value is set, 中,但在设置默认值时未调用属性?

转载 作者:行者123 更新时间:2023-11-30 15:45:15 28 4
gpt4 key购买 nike

我有一段代码是这样的:

[DefaultValue(false)]
public bool Property
{
set
{
blah = value;
someControl.Visible = value;
}
get
{
return blah;
}
}

当我查看设计器中的属性时,该属性设置为 false(如果我使用它,则设置为 true)。
但该属性实际上并未设置。控件的 Visible 值未更改。

我怎样才能让设计者实际设置属性为默认值?

最佳答案

[DefaultValue] 属性只是对设计者和序列化器的提示。确保您在属性中 promise 的默认值实际上是该属性的值完全取决于您。在您的情况下不会调用属性 setter ,因为序列化程序检测到属性的当前值等于默认值,因此可以省略属性分配。这是一种优化,它使 InitializeComponent() 更小更快。

您只需在构造函数中初始化属性值即可确保这一点。请注意,控件的 Visible 属性默认为 true。

关于c# - 在 Designer : Property default value is set, 中,但在设置默认值时未调用属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5367441/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com