受保护的内部属性与受保护的属性和 Resharper

Posted

技术标签:

【中文标题】受保护的内部属性与受保护的属性和 Resharper【英文标题】:Protected Internal properties vs Protected properties and Resharper 【发布时间】:2011-03-11 09:58:58 【问题描述】:

我刚刚使用了 Resharper,并且一直在尝试将字段转换为属性。我希望这些属性受到保护,但 Resharper 不想给我这个选项。相反,只有一个受保护的内部选项。这让我思考。要么在某处有一条规则,即属性应始终“受内部保护”,而不仅仅是“受保护”。或者我只是不知道如何使用 resharper。是哪个?

更新:联系了 Jetbrains 自己,他们已将此行为确定为错误并提出了错误报告。 Marc 对“受保护的内部”的使用基本上是正确的,所以他得到了勾选。

【问题讨论】:

你公开了这个类吗?默认为内部。将内部类的属性声明为内部是相当愚蠢的,当您重构以使该类公开时,它需要一个重构工具。虽然这确实可以确保您从演示版转到零售版。 是的 - 该类被声明为公共的。事实上,这并不是一开始的,而是我创建了一个仅包含该类的测试项目,并故意将其声明为 public。我仍然有同样的问题。 【参考方案1】:

目前有哪些领域? public?我想知道您是否有其他类型的代码已经触及属性,因此如果它们只是 protected 会中断。我不知道 resharper 对此有何感想,但没有必要(甚至不是特别常见)使事情 protected internal - 所以 protected 应该是一个合理的选择。

【讨论】:

这些字段从一开始就受到保护,代码编译得很好,属性就像受保护的一样

以上是关于受保护的内部属性与受保护的属性和 Resharper的主要内容,如果未能解决你的问题,请参考以下文章

公共与受保护

如何在 C# 中使属性受保护和内部?

Objective-C - 私有与受保护与公共

静态类与受保护的构造函数

将 make_shared 与受保护的构造函数 + 抽象接口一起使用

ruby 公共与私人与受保护