【问题标题】:C#: Why do I have to use the public access modifier in class's vars?C#:为什么我必须在类的变量中使用公共访问修饰符?
【发布时间】:2011-09-27 03:57:26
【问题描述】:

好吧,我初学者,所以..是的,这可能是一个非常愚蠢的问题。 我读到,如果我声明变量或对象,而不提及访问修饰符(公共、私有等),它会自动使其具有 Internal 访问修饰符(并且它将存在于当前的任何地方命名空间)。

那么为什么我需要在一个类中将我的 vars 设置为 Public 才能让它们进入另一个类(例如我的程序的类)。

【问题讨论】:

  • 我很确定默认是私有的,而不是内部的。
  • 顶级类型的默认值是内部
  • @Captain Comic:他说的是变量/对象,所以他可能指的是字段,而不是类型。
  • 是的,我想说他(问题作者)可能读过类型
  • 旁白:您提到“vars”,我假设您的意思是“字段”。字段不应暴露 - 它们应该是 private。如果要公开数据,请使用 property.

标签: c# oop class public access-modifiers


【解决方案1】:

因为你不识字?好吧,开玩笑的。你说你是初学者,所以忽略一些小事是很正常的。

我读到如果我声明变量或对象,而没有提及访问修饰符(公共, 私人等)而不是自动使其具有内部访问修饰符

啊,不。它默认为 privateNOT 为内部。它默认为最合理的默认值,内部仍然允许大量跨类访问,从而导致不良代码实践。

【讨论】:

  • 非常感谢!我在一本书里又读了一遍,作者确实说它是内部的,但是哦,好吧。感谢您的帮助
  • 啊,我们开始吧。规则一:书籍并不完美。至少退回到官方文档;)
  • @Ken 我有点好奇想知道那本书是什么?
  • 我还要补充一点,public 允许您在其他程序集中使用这些类。 Internal 在程序集中是“全局的”。
猜你喜欢
  • 1970-01-01
  • 2016-05-25
  • 2019-07-15
  • 2017-07-09
  • 2017-11-11
  • 2011-01-31
  • 2011-04-12
  • 1970-01-01
  • 2014-02-07
相关资源
最近更新 更多