windows表单用户控件属性在构建时执行代码

时间:2016-02-26 17:09:02

标签: c# winforms

我在C#Windows窗体上有一个用户控件。每次构建项目时,都会触发我的属性上的代码并显示消息框。谁知道为什么?

public string Name 
{
    get
    {
        if(xpto != null) 
        { 
            return mystring;
        }
        else
        {
            MessageBox.Show("message");
            return string.Empty;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

它在我看来好像" xpto"在调用属性之前未设置。您的代码将运行" else"分支只要" xpto"尚未设置(或已设置为空)。

这意味着,在您初始化" xpto"之前,代码中的某些内容会调用您的属性" Name" (或者,您自己设置" xpto"为null)。所以" xpto"当" Name"被调用,并显示消息框。

编辑: 此外,如果它在发生时发生,可能是因为设计师不会设置" xpto",本身。相反,它使用它关心的属性,例如" Name"," Text"等等。因此,当设计师调用" Name"时,它没有'考虑到" xpto"前手和" xpto"当设计师到达该物业时,它将为null" Name"。