作者:成长的人走在路上_774 | 来源:互联网 | 2023-02-08 14:10
由于我不知道适用于此的术语,我不确定如何搜索现有的评论.
我最近浪费了大量时间,表达体类似于:
public SomeListViewModel SearchSomeModel => new ShowSomeViewModel{...};
当我尝试设置值时,例如:
SearchSomeModel.Property = 12345;
它表现得像一切都很好.但实际价值从未改变.当我改为插入{get;}时:
public SomeListViewModel SearchSomeModel {get;} = new ShowSomeViewModel{...};
它工作正常.
有趣的是,如果这是以正常的get开始(使用get {return ..},那么ReSharper(?)提供将其转换为第一个版本.
无论如何,我想要理解两者之间的差异(不,不是在CLR级别),而只是为了a)知道如何引用其中的每个正确的术语和b)为什么一个有效,另一个只是假装工作.
谢谢!
1> Ofir Winegar..:
第一行代码 -
public SomeListViewModel SearchSomeModel => new ShowSomeViewModel{...};
意味着它会在ShowSomeViewModel
每次尝试时创建一个新实例get
.
它相当于:
public SomeListViewModel SearchSomeModel {
get {return new ShowSomeViewModel{...};}
}
另一方面
public SomeListViewModel SearchSomeModel {get;} = new ShowSomeViewModel{...};
表示您正在设置默认值.