Questions tagged «c#-7.2»

6
计划中的“受私有保护”的C#访问修饰符是什么意思?
作为GitHub上Roslyn文档的一部分,有一个页面叫语言功能实施状态,其中包含计划的C#和VB语言功能。 private protected访问修饰符是我无法解决的一个功能: private protected string GetId() { … } 还有一个C#语言设计说明页面,其中介绍了许多新功能,但没有介绍这一功能。 埃里克·利珀特(Eric Lippert)在评论中说: 您的错误是将修饰符视为增加的限制。实际上,修饰符总是会减少限制。请记住,默认情况下事情是“私有的”。仅通过添加修饰符,您才能使它们的约束更少。 是什么意思private protected?我什么时候可以使用?

5
为什么有人在C#中使用“输入”参数修饰符?
因此,我(认为我)了解in参数修饰符的作用。但是它的作用似乎是多余的。 通常,我认为使用a的唯一原因ref是修改调用变量,明确禁止使用in。因此,按in引用传递在逻辑上似乎等效于按值传递。 有某种性能优势吗?我认为,在事物的后端,ref参数必须至少复制变量的物理地址,该地址的大小应与任何典型对象引用的大小相同。 因此,那么优势是仅在较大的结构中出现,还是在后台进行了一些编译器优化,使其在其他地方有吸引力?如果是后者,为什么我不应该将每个参数都设为in?
84 c#  c#-7.2 


3
(C#7.2)“私有保护”修饰符的用例是什么?
C#7.2引入了private protected修饰符。 我一直使用属性来保护对字段的访问,允许通过Get / Set方法进行访问,因为我通常不希望通过自己的类以外的任何东西来修改对象的内部状态。 我试图理解为什么C#语言团队添加了此功能。在Google上进行了广泛的搜索之后,阅读并观看了“新消息”媒体(我已经看过Mads Torgerson的新闻稿,详细信息和视频),但我仍然不是一个明智的选择。 在我看来,这似乎使开发人员可以打破Liskov替代原则,但这可能是因为我不理解为什么现在存在此功能。 我知道如何使用它,而不是为什么-请有人可以提供真实的用法示例,而不是MSDN文档中人为的示例吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.