[英]WPF Styling setter's targetname to dependencyproperty's property
[英]Return Nothing in an if statement of a property's setter WPF
以下代码片段的流程是什么? return;
方法? return;
执行?
public bool ActionSafeAction
{
get
{
return this.ActionSafeAction;
}
set
{
if (value.Equals(this.ActionSafeAction))
{
return;
}
if (value)
{
this.ActivateItem(this.ActionSafeAction);
this.ActionSASelected = false;
}
this.ActionSafeAction= value;
this.NotifyOfPropertyChange(() => this.ActionSafeAction);
}
}
它不会再做return
之后发生的事情。 它立即从设置器返回,并且不会更改任何基础值。
如果ActionSafeAction
已经为真,则写入ActionSafeAction = true
true
命中此return
语句并且不再执行任何操作。
我认为,如果我们像下面这样说明 getter 和 setter,您可能会理解得更好。 Get 和 Set 是影响特定成员的两个独立方法的隐含定义。
public class Foo
{
private string myMember;
public string GetMyMember()
{
return myMeber;
}
public void SetMyMember(string value)
{
myMember = value;
}
}
因此,如您所见,setter 实际上是一个 void 方法,当您在此方法的任何部分调用return语句时,它只会离开方法而不执行代码的 rest。 这也是您的ActionSafeAction属性的设置器发生的事情。
上述两种方法的相等将是这个属性:
public class Foo
{
private string myMember;
public string MyMember
{
get { return myMember; }
set { myMember = value; }
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.