jjzjj

encapsulation

全部标签

c# - 有什么理由在手动实现的属性上使用自动实现的属性?

我理解PROPERTIES相对于FIELDS的优势,但我觉得使用AUTO实现的属性优于MANUAL实现的属性并没有真正提供任何优势,除了让代码看起来更简洁一些。我觉得使用起来更舒服:privatestring_postalCode;publicstringPostalCode{get{return_postalCode;}set{_postalCode=value;}}代替:publicstringPostalCode{get;set;}主要是因为如果我想对get和set进行任何类型的自定义实现,无论如何我都必须创建自己的属性并由私有(private)字段支持。那么,为什么不从一开始就

c# - 有什么理由在手动实现的属性上使用自动实现的属性?

我理解PROPERTIES相对于FIELDS的优势,但我觉得使用AUTO实现的属性优于MANUAL实现的属性并没有真正提供任何优势,除了让代码看起来更简洁一些。我觉得使用起来更舒服:privatestring_postalCode;publicstringPostalCode{get{return_postalCode;}set{_postalCode=value;}}代替:publicstringPostalCode{get;set;}主要是因为如果我想对get和set进行任何类型的自定义实现,无论如何我都必须创建自己的属性并由私有(private)字段支持。那么,为什么不从一开始就

c# - 用于公开列表成员的 IEnumerable vs IReadonlyCollection vs ReadonlyCollection

我花了好几个小时思考公开列表成员的主题。在与我类似的问题中,JonSkeet给出了很好的答案。请随时查看。ReadOnlyCollectionorIEnumerableforexposingmembercollections?我通常对公开列表非常偏执,尤其是当您正在开发API时。我一直使用IEnumerable来公开列表,因为它非常安全,而且它提供了很大的灵active。让我在这里举个例子:publicclassActivity{privatereadonlyIListworkItems=newList();publicstringName{get;set;}publicIEnumer

c# - 用于公开列表成员的 IEnumerable vs IReadonlyCollection vs ReadonlyCollection

我花了好几个小时思考公开列表成员的主题。在与我类似的问题中,JonSkeet给出了很好的答案。请随时查看。ReadOnlyCollectionorIEnumerableforexposingmembercollections?我通常对公开列表非常偏执,尤其是当您正在开发API时。我一直使用IEnumerable来公开列表,因为它非常安全,而且它提供了很大的灵active。让我在这里举个例子:publicclassActivity{privatereadonlyIListworkItems=newList();publicstringName{get;set;}publicIEnumer

C#:List<T> 和 Collection<T> 之间的区别(CA1002,不要公开通用列表)

这个问题在这里已经有了答案:CollectionversusListwhatshouldyouuseonyourinterfaces?(8个答案)关闭8年前。尝试在此处的项目上运行运行代码分析,并收到许多警告,内容如下:CA1002:Microsoft.Design:Change'ListSomeType>'in'SomeClass.SomeProtectedOrPublicProperty'touseCollection,ReadOnlyCollectionorKeyedCollection我为什么要使用Collection而不是List?当我查看msdn文档时,它们似乎几乎相等。看

C#:List<T> 和 Collection<T> 之间的区别(CA1002,不要公开通用列表)

这个问题在这里已经有了答案:CollectionversusListwhatshouldyouuseonyourinterfaces?(8个答案)关闭8年前。尝试在此处的项目上运行运行代码分析,并收到许多警告,内容如下:CA1002:Microsoft.Design:Change'ListSomeType>'in'SomeClass.SomeProtectedOrPublicProperty'touseCollection,ReadOnlyCollectionorKeyedCollection我为什么要使用Collection而不是List?当我查看msdn文档时,它们似乎几乎相等。看

golang 公共(public)方法到私有(private)结构 - 这有任何用例吗

我是新来的。我注意到在一些库中有私有(private)结构的公共(public)方法。参见示例https://github.com/btcsuite/btcd/blob/master/txscript/stack.go这有实际用例吗?如果我也无法访问它们所属的结构,我无法想象我将如何使用公共(public)方法。如以下问题-有什么方法可以克服结构的私有(private)声明吗?例如,我想在我的包中使用指向文件中的结构堆栈。 最佳答案 因此,主要用例是您可以从包函数返回未导出的类型。任何导出的方法都可以用于此类型,即使其他包实际上不能

golang 公共(public)方法到私有(private)结构 - 这有任何用例吗

我是新来的。我注意到在一些库中有私有(private)结构的公共(public)方法。参见示例https://github.com/btcsuite/btcd/blob/master/txscript/stack.go这有实际用例吗?如果我也无法访问它们所属的结构,我无法想象我将如何使用公共(public)方法。如以下问题-有什么方法可以克服结构的私有(private)声明吗?例如,我想在我的包中使用指向文件中的结构堆栈。 最佳答案 因此,主要用例是您可以从包函数返回未导出的类型。任何导出的方法都可以用于此类型,即使其他包实际上不能

php - 我可以使用私有(private)实例方法作为回调吗?

我的特定场景涉及在私有(private)方法中使用正则表达式进行一些文本转换。私有(private)方法调用preg_replace_callback,但似乎回调需要在对象上公开,所以我坚持要打破私有(private)世界并在我不愿意的时候公开实现细节。所以,简而言之:我可以在不丢失封装的情况下使用实例方法作为回调吗?谢谢。 最佳答案 是的,看来你可以:test();//thisdoesn'twork$result=preg_replace_callback('/test/',array(newa(),'replaceCallbac

php - 我可以使用私有(private)实例方法作为回调吗?

我的特定场景涉及在私有(private)方法中使用正则表达式进行一些文本转换。私有(private)方法调用preg_replace_callback,但似乎回调需要在对象上公开,所以我坚持要打破私有(private)世界并在我不愿意的时候公开实现细节。所以,简而言之:我可以在不丢失封装的情况下使用实例方法作为回调吗?谢谢。 最佳答案 是的,看来你可以:test();//thisdoesn'twork$result=preg_replace_callback('/test/',array(newa(),'replaceCallbac