为什么是系统?控制台公开一个SetIn方法

本文关键字:一个 方法 SetIn 系统 控制台 为什么 | 更新日期: 2023-09-27 18:17:03

这是我在为System.Console类编写适配器时突然想到的一点东西。为什么In, OutError的性质与SetIn, SetOutSetError的方法配对?为什么不使用属性的setter呢?这是一个架构决定还是有限制阻止。net框架开发人员这样做?

为什么是系统?控制台公开一个SetIn方法

我不能代表原作者说话,但至少有五个很好的理由将set方法与属性getter(可能还有protected setter)结合使用:

  1. 设置值时需要附加参数(in或out)。
  2. 你需要多次重载setter。也许通过字符串设置一些特定类型的属性以及特定类型是常见的。
  3. 设置和获取需要不同的属性或权限。
  4. 你有不同的功能更新属性和设置值。例如,考虑一个客户端代理类,除了允许用户设置需要传播到服务器的值之外,还必须从服务器数据更新值。
  5. 也许你想为协方差分离你的接口,这样你就需要在不同的接口上使用getter和setter。

说了这么多之后,我回顾了dotPeek中上述方法(SetInget_In)的代码。我找不到任何不使用setter的借口。In getter具有与SetIn方法相同的权限属性。