访问者关键字的“保真度”是什么意思?

cha*_*hma 5 c# encapsulation accessor

我正在阅读.Net Docs,遇到了“保真度”这个词,

类型安全性还用于通过保证访问者关键字的保真度来帮助强制执行封装。

这是什么意思(相对于访问者关键字)?

Eri*_*ert 8

叹。

只是太多的文档,开发团队没有足够的时间来检查术语的准确性。此概述是一堆小错误和令人困惑的非标准行话用法。

有问题的段落是:

类型安全性还用于通过保证访问者关键字的保真度来帮助强制执行封装。访问者关键字是控制其他代码对给定类型的成员的访问的构件。这些通常用于一种类型内用于管理其行为的各种数据。

uck 这里太错了。“访问者关键字”应为“可访问性级别”。“其他代码”令人困惑;“其他条例”是指代码这是其他什么是什么呢?访问修饰符控制访问的成员到处,不仅在“其他代码”。我们为什么要谈论成员,然后突然切换到数据?“管理行为”是什么意思?

让我们用标准的C#术语重新描述一下。

静态类型检查通过确保程序遵守类型成员声明的可访问性级别来帮助强制执行封装。例如,如果type Dog有一个private成员mother,则静态类型检查有助于确保避免尝试从Dog类外部的代码访问该成员。

纠正此文档中所有其他疯狂的错误留给读者练习。例如,此代码示例有什么问题?

Dog dog = AnimalShelter.AdoptDog(); // Returns a Dog type.
Pet pet = (Pet)dog; // Dog derives from Pet.
pet.ActCute();
Car car = (Car)dog; // Will throw - no relationship between Car and Dog.
object temp = (object)dog; // Legal - a Dog is an object.
Run Code Online (Sandbox Code Playgroud)

  • 我输入了更多问题的github问题。https://github.com/dotnet/docs/issues/13466 (5认同)
  • `car car =(Car)dog;`:好吧,如果您坚持允许允许`Car`继承自`Dog`:https://i.stack.imgur.com/eoTFN.jpg (2认同)