Jus*_*Too 0 c# expression properties
由于我不知道适用于此的术语,我不确定如何搜索现有的评论.
我最近浪费了大量时间,表达体类似于:
public SomeListViewModel SearchSomeModel => new ShowSomeViewModel{...};
Run Code Online (Sandbox Code Playgroud)
当我尝试设置值时,例如:
SearchSomeModel.Property = 12345;
它表现得像一切都很好.但实际价值从未改变.当我改为插入{get;}时:
public SomeListViewModel SearchSomeModel {get;} = new ShowSomeViewModel{...};
Run Code Online (Sandbox Code Playgroud)
它工作正常.
有趣的是,如果这是以正常的get开始(使用get {return ..},那么ReSharper(?)提供将其转换为第一个版本.
无论如何,我想要理解两者之间的差异(不,不是在CLR级别),而只是为了a)知道如何引用其中的每个正确的术语和b)为什么一个有效,另一个只是假装工作.
谢谢!
第一行代码 -
public SomeListViewModel SearchSomeModel => new ShowSomeViewModel{...};
Run Code Online (Sandbox Code Playgroud)
意味着它会在ShowSomeViewModel每次尝试时创建一个新实例get.
它相当于:
public SomeListViewModel SearchSomeModel {
get {return new ShowSomeViewModel{...};}
}
Run Code Online (Sandbox Code Playgroud)
另一方面
public SomeListViewModel SearchSomeModel {get;} = new ShowSomeViewModel{...};
Run Code Online (Sandbox Code Playgroud)
表示您正在设置默认值.
| 归档时间: |
|
| 查看次数: |
768 次 |
| 最近记录: |