草庐IT

Getter-Setter

全部标签

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();

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

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

c# - setter/getter 中的对象创建是不好的做法吗?

让我们像这样在getter中创建一个对象:publicclassClass1{publicstringId{get;set;}publicstringOz{get;set;}publicstringPoznamka{get;set;}publicObjectobject{get{//maybesomemorecodereturnnewObject{Id=Id,poznamla=Poznamka,Oz=OZ};}}}或者我应该创建一个方法来创建并返回对象? 最佳答案 是的,这是不好的做法。理想情况下,getter不应该更改或创建任何东

c# - setter/getter 中的对象创建是不好的做法吗?

让我们像这样在getter中创建一个对象:publicclassClass1{publicstringId{get;set;}publicstringOz{get;set;}publicstringPoznamka{get;set;}publicObjectobject{get{//maybesomemorecodereturnnewObject{Id=Id,poznamla=Poznamka,Oz=OZ};}}}或者我应该创建一个方法来创建并返回对象? 最佳答案 是的,这是不好的做法。理想情况下,getter不应该更改或创建任何东

c# - 如何在 C# 中覆盖属性的 setter 方法?

我有一个带有子类的类。父类(superclass)有一个Position属性。当Position属性更改时,子类必须执行额外的操作,因此我试图重写setter方法并调用父类(superclass)的setter。我想我已经了解了父类(superclass)setter调用部分,但我无法弄清楚这里的重写语法是如何工作的。这是我最好的尝试:setter/getter只是为了证明概念——假设我也想覆盖它?getter和setter给我这种形式的错误:cannotoverrideinheritedmember'superClassName.Position.[gs]et'becauseitis

c# - 如何在 C# 中覆盖属性的 setter 方法?

我有一个带有子类的类。父类(superclass)有一个Position属性。当Position属性更改时,子类必须执行额外的操作,因此我试图重写setter方法并调用父类(superclass)的setter。我想我已经了解了父类(superclass)setter调用部分,但我无法弄清楚这里的重写语法是如何工作的。这是我最好的尝试:setter/getter只是为了证明概念——假设我也想覆盖它?getter和setter给我这种形式的错误:cannotoverrideinheritedmember'superClassName.Position.[gs]et'becauseitis

c# - 带参数的 Getter 属性

我想我以前在哪里见过它,但现在我不记得也找不到了。有没有办法创建带参数的getter属性?我的意思是,因为我可以转换“floatgetSize();”到“float大小”:floatgetSize(){returnthis.size;}floatSize{get{returnthis.size;}}然后,我可以转换,例如,“floatgetSize(Stringunit);”到“float大小(字符串单元)”或类似的东西?floatgetSize(Stringunit){returnthis.size;}floatSize(Stringunit){get{if(unit==Unit.M