由于我不知道适用于此的术语,因此我不确定如何搜索对此的现有评论。
我最近在类似于以下的表达式体上浪费了大量时间:
public SomeListViewModel SearchSomeModel => new ShowSomeViewModel{...};
当我尝试设置如下值时:
SearchSomeModel.Property = 12345;
表现得好像一切都很好。但实际价值从未改变。当我插入 {get;} 时,如下所示:
public SomeListViewModel SearchSomeModel {get;} = new ShowSomeViewModel{...};
它工作正常。
有趣的是,如果这作为一个普通的 get 开始(带有 get {return ..} ),那么 ReSharper(?) 会提供将其转换为第一个版本。
无论如何,我想了解两者之间的区别(不,不是在 CLR 级别),但只是为了 a)知道如何用适当的术语来引用它们,b)为什么一个有效而另一个只是假装有效。
Thanks!
第一行代码 -
public SomeListViewModel SearchSomeModel => new ShowSomeViewModel{...};
意味着它将创建一个新实例ShowSomeViewModel
每次你尝试get
it.
它相当于:
public SomeListViewModel SearchSomeModel {
get {return new ShowSomeViewModel{...};}
}
另一方面
public SomeListViewModel SearchSomeModel {get;} = new ShowSomeViewModel{...};
表示您正在设置默认值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)