草庐IT

Getters-Setter

全部标签

ios - 仅在 Swift 中创建一个 Setter

当我创建一个setter时,例如:varmasterFrame:CGRect{set{_imageView.frame=newValue_scrollView.frame=newValue}}这迫使我做一个getter,我不想这样做。有没有办法在没有getter的情况下在Swift中创建setter? 最佳答案 好吧,如果我真的需要,我会使用它。Swift编译器支持getter的一些属性,所以你可以使用@available(*,unavailable):publicsubscript(index:Int)->T{@available

swift - 如何在 Swift 中覆盖 setter

父类(superclass):classMySuperView:UIView{varaProperty;}子类继承父类:classSubclass:MySuperClass{//IwanttooverridetheaProperty'ssetter/gettermethod}我想覆盖父类(superclass)属性的setter/getter方法,如何在Swift中覆盖这个方法?请帮助我,谢谢。 最佳答案 你想用你的自定义二传手做什么?如果你想让类在设置值之前/之后做一些事情,你可以使用willSet/didSet:classThe

swift - 如何在 Swift 中覆盖 setter

父类(superclass):classMySuperView:UIView{varaProperty;}子类继承父类:classSubclass:MySuperClass{//IwanttooverridetheaProperty'ssetter/gettermethod}我想覆盖父类(superclass)属性的setter/getter方法,如何在Swift中覆盖这个方法?请帮助我,谢谢。 最佳答案 你想用你的自定义二传手做什么?如果你想让类在设置值之前/之后做一些事情,你可以使用willSet/didSet:classThe

ios - Swift 编程 : getter/setter in stored property

如何在Swift中覆盖存储属性的setter?在Obj-C中,我可以覆盖它的setter,但Swift似乎不喜欢将getter/setter用于存储属性。假设我有一个Card类,它有一个名为rank的属性。我不希望客户端给它任何无效值,因此,在Objective-C中,我可以覆盖setRank以便它执行额外的检查。但是Swift中的willSet似乎没有帮助,因为newValue是常量并且分配rank没有意义,因为setter将在循环。 最佳答案 好的。阅读有关Swift的Apple文档,我发现this:Ifyouassignava

ios - Swift 编程 : getter/setter in stored property

如何在Swift中覆盖存储属性的setter?在Obj-C中,我可以覆盖它的setter,但Swift似乎不喜欢将getter/setter用于存储属性。假设我有一个Card类,它有一个名为rank的属性。我不希望客户端给它任何无效值,因此,在Objective-C中,我可以覆盖setRank以便它执行额外的检查。但是Swift中的willSet似乎没有帮助,因为newValue是常量并且分配rank没有意义,因为setter将在循环。 最佳答案 好的。阅读有关Swift的Apple文档,我发现this:Ifyouassignava

c# - 如何使用 System.Lazy 和 Setter 来延迟初始化 POCO 实体中的列表?

我想在我的实体中使用System.Lazy来延迟初始化我的列表:publicclassQuestionary{privateLazy>_questions=newLazy>(()=>newList());publicIListQuestions{get{return_questions.Value;}set{_questions.Value=value;}}}问题出在我的SETTER上,得到这个错误:Theproperty'System.Lazy.Value'没有二传手如果我想做MyInstance.Questions=newList{...}?我该如何继续?更新:我正在努力避免这种情

c# - 如何使用 System.Lazy 和 Setter 来延迟初始化 POCO 实体中的列表?

我想在我的实体中使用System.Lazy来延迟初始化我的列表:publicclassQuestionary{privateLazy>_questions=newLazy>(()=>newList());publicIListQuestions{get{return_questions.Value;}set{_questions.Value=value;}}}问题出在我的SETTER上,得到这个错误:Theproperty'System.Lazy.Value'没有二传手如果我想做MyInstance.Questions=newList{...}?我该如何继续?更新:我正在努力避免这种情

c# - 当不允许属性 setter 时抛出什么异常?

我有一个具有虚拟属性的基类:publicvirtualstringName{get;set;}然后我有一个派生类,它只覆盖属性的getterpublicoverridestringName{get{return"FixedName";}}问题是这只会覆盖getter。如果有人调用setter,基类setter将被调用,而调用者不会知道它是无效的。所以我想我会做类似的事情:publicoverridestringName{get{return"FixedName";}set{thrownewException();}//whichexceptiontype?}所以两个(相关问题):有没有

c# - 当不允许属性 setter 时抛出什么异常?

我有一个具有虚拟属性的基类:publicvirtualstringName{get;set;}然后我有一个派生类,它只覆盖属性的getterpublicoverridestringName{get{return"FixedName";}}问题是这只会覆盖getter。如果有人调用setter,基类setter将被调用,而调用者不会知道它是无效的。所以我想我会做类似的事情:publicoverridestringName{get{return"FixedName";}set{thrownewException();}//whichexceptiontype?}所以两个(相关问题):有没有

c# - 如何为字典编写 getter 和 setter?

如何为字典等复杂数据类型定义getter和setter?publicDictionaryUsers{get{returnm_Users;}set{m_Users=value;}}这会返回整个字典?您能否编写setter来查看是否存在特定的键值对,如果不存在,则添加它。否则更新当前键值对?对于get,是否可以返回特定的键值对而不是整个字典? 最佳答案 使用索引器属性(MSDN):publicclassYourClass{privatereadonlyIDictionary_yourDictionary=newDictionary();