我在C#Windows窗体上有一个用户控件。每次构建项目时,都会触发我的属性上的代码并显示消息框。谁知道为什么?
public string Name
{
get
{
if(xpto != null)
{
return mystring;
}
else
{
MessageBox.Show("message");
return string.Empty;
}
}
}
答案 0 :(得分:0)
它在我看来好像" xpto"在调用属性之前未设置。您的代码将运行" else"分支只要" xpto"尚未设置(或已设置为空)。
这意味着,在您初始化" xpto"之前,代码中的某些内容会调用您的属性" Name" (或者,您自己设置" xpto"为null)。所以" xpto"当" Name"被调用,并显示消息框。
编辑: 此外,如果它在发生时发生,可能是因为设计师不会设置" xpto",本身。相反,它使用它关心的属性,例如" Name"," Text"等等。因此,当设计师调用" Name"时,它没有'考虑到" xpto"前手和" xpto"当设计师到达该物业时,它将为null" Name"。