C# 私有成员可见性

2024-06-23

我们的商业模式中有一个学生课程。令我感到奇怪的是,如果我们从另一个学生操纵一个学生,则学生的私人成员是可见的,这是为什么?

   class Program {
      static void Main(string[] args) {

         Student s1 = new Student();
         Student s2 = new Student();

         s1.SeePrivatePropertiesAndFields(s2);
      }
   }

   public class Student {

      private String _studentsPrivateField;

      public Student() {
         _studentsPrivateField = DateTime.Now.Ticks.ToString();
      }

      public void SeePrivatePropertiesAndFields(Student anotherStudent) {
         //this seems like these should be private, even from the same class as it is a different instantiation
         Console.WriteLine(anotherStudent._studentsPrivateField);
      }
   }

我可以对此的设计考虑/影响有一些想法吗?看来你不能向你的兄弟姐妹隐瞒信息。有没有办法将字段或成员标记为对同一类的其他实例隐藏?


有一个简单的方法可以确保这一点:

不要搞乱同一类的其他实例的私有成员。

说真的——你是写这篇文章的人Student code.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 私有成员可见性 的相关文章

随机推荐

  • 如何初始化派生类中的静态成员?

    嗯 显然 我不能 但这是我的问题 也许这是一个设计问题 我把整个事情搞错了 我希望在每个派生类中以不同的方式初始化类成员 想象我有一个类型的对象Device This Device只是应用程序代码使用的接口 因为实际设备只是两种类型之一 D
  • IBAN 验证器 Swift

    我正在编写一种算法来验证 Swift 3 中的 IBAN 国际银行帐号 但无法计算其中一个验证 IBAN 示例 BE68539007547034 以下是验证规则 输入数字的长度应为 16 前 2 个字符是国家 地区代码 不是数字 最后 14
  • 从文件中就地删除一行

    我有一个 txt 文件 我想要一个 python 脚本来用它做一些事情 我的 txt 看起来像这样 27b23815 4cbb dfae 3e6d 38f67ec4266e 81a090bd 8973 bc37 5c7b dc1a18e8d
  • 如何指定maven编译器插件顺序

    我正在使用 Maven 开发一个混合 java 和 kotlin 项目 我现在面临的问题是maven compiler plugin编译前运行kotlin maven plugin INFO maven compiler plugin 3
  • 程序员针对芬兰语/瑞典语或其他非美国键盘布局的 VIM 设置

    I ve been recently learning some VIM hackery and I have learned a lot of useful commands and gotten pretty efficient at
  • Sprite Kit bodyAtPoint 和 bodyInRect 返回错误值?

    我创建了一个非常简单的示例代码 只有一个场景 一个 20x20px 的精灵节点 位于屏幕上的 0 0 点 当我打电话时scene physicsWorld bodyAtPoint即使在点例如 34x34 它也会返回给我这个节点 但在 35x
  • 在 Android 的列表视图中仅突出显示所选项目

    我有一个列表视图contactslist 我编写了用于突出显示所选项目的代码ListView 这是工作 当我单击一个项目时 它会突出显示该项目 但问题是如果我单击另一项目 它也会突出显示该项目 我只想突出显示所选项目 当我单击另一个项目时
  • Spring 安全角色层次结构无法使用 Java Config 工作

    首先 我是 Java Spring 框架的新手 如果我没有提供足够的信息 请原谅我 我尝试将角色层次结构添加到我的应用程序中 但没有成功 以下是我尝试过的代码 安全配置 java These config is try to set up
  • 文本:从右到左 (CSS)

    是否有 CSS 代码可以更改此文本 This is it 到这个 ti si sihT Try this cssClassName direction rtl unicode bidi bidi override 编辑 将此类应用于段落标签
  • 关键字final有什么用?

    在下面的代码中 如果我从 EditText 中删除关键字 Final 我会在第 6 行中出现错误 其中我将 EditText 对象 et 传递给意图 我必须知道这里 Final 关键字的重要性 final EditText et EditT
  • Jquery Validate - 类列表

    这可能是一个非常愚蠢的问题 但我正在寻找 jquery 表单验证器的内联验证规则列表 我知道我能找到这里有js函数 http docs jquery com Plugins Validation List of built in Valid
  • 从 C# 中的两个类继承[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的多重继承 https stackoverflow com questions 178333 multiple inheritance in c sharp 我有两个类A类和B类 这两个类不能互
  • 自定义 __str__ 和 __repr__ 不起作用

    我正在尝试转换输出 例如 decrypt
  • 从客户端 Web 浏览器与串行端口进行通信。

    在我的 Web 应用程序 sencha extjs 5 中 我有一个用户要求将数据读 写到客户端 PC 串行端口 我知道客户端浏览器如果不在本地计算机上安装一些二进制文件 本机应用程序 Windows 服务等 就无法访 问本地计算机硬件 几
  • javascript 中 div 元素的边框[重复]

    这个问题在这里已经有答案了 我想给div设置边框半径box在 javascript 中 因为我已经屈服了 css 作为边框 2px 实心 000 我怎样才能把它放在下面给出的 for 循环中 elements document getEle
  • 如何将 Maven 安装到 Red Hat Enterprise Linux 6 中?

    我正在开发一个 Scientific Linux 盒子 并尝试使用以下命令安装 Mavenyum命令 对于那些不知道的人来说 Scientific Linux 是基于 Red Hat Linux Enterprise Edition 6 的
  • 使用 q.js 链接 Promise

    我试图了解承诺链是如何工作的 我在用着q js https github com kriskowal q 这就是我正在玩的东西 var Q require q npm install q the function Q value retur
  • 在调用 clFinish 或 clWaitForEvents 之前,OpenCL 内核不会开始执行

    我正在尝试在 GPU 上运行内核并在主机 CPU 上进行额外的计算 我看到这样的效果 只有内核需要大约 2000 毫秒 clEnqueueNDRangeKernel clFinish 或 clWaitForEvents 我都尝试过 我用 s
  • 在可在 Blackberry 设备和 Windows Mobile 6.5 上运行的网页上嵌入视频

    我正在尝试在一个网站上嵌入一个视频 该视频将在黑莓和 Windows Mobile 6 5 设备上播放 目前正在黑莓 curve 和 acer betouch 上进行测试 但似乎没有任何进展 黑莓Flash 不起作用 HTML5 视频也不起
  • C# 私有成员可见性

    我们的商业模式中有一个学生课程 令我感到奇怪的是 如果我们从另一个学生操纵一个学生 则学生的私人成员是可见的 这是为什么 class Program static void Main string args Student s1 new S