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

时间:2019-07-18 15:08:19

标签: c# encapsulation accessor

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

  

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

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

1 个答案:

答案 0 :(得分:5)

叹气。

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

有问题的段落是:

  

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

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

让我们用标准的C#术语重新措辞。

  

静态类型检查通过确保程序遵守类型成员声明的可访问性级别来帮助实施封装。例如,如果类型Dog具有私有成员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.