问题标签 [access-modifiers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2789 浏览

c# - 带有 ADO.NET Entity Framework 的内部类

我正在使用实体框架来创建我的数据访问层,我希望我的所有类都是internal.

我知道可以在设计器中为每个类手动分配它。

更新 我发现我最初的陈述

但看起来它还需要为每个类中的每个属性设置内部修饰符!我有大约 30 多个实体,这将是一项艰巨的工作。

不正确。我错过了当我设置访问权限时,Entity Type我还需要设置适当的访问权限Entity Set

您知道如何为整个模型设置“默认访问”吗?

0 投票
9 回答
273038 浏览

c# - C# 中的默认访问修饰符是什么?

类、方法、成员、构造函数、委托和接口的默认访问修饰符是什么?

0 投票
1 回答
219 浏览

c# - 访问修饰符 - 业务对象的属性 - 获取和设置

我将 LINQ to SQL 用于 DataAccess 层。我有与数据访问层类似的业务对象。

我已经让数据提供者收到消息 #23。在消息实例化时,在消息构造函数中,它获取 MessageType 并创建 MessageType 类的新实例并从数据库中填写 MessageType 信息。

所以; 我希望它获得消息的 MessageType 的名称。

我还希望管理员设置 MessageType

但我不希望用户公开设置 MessageType.Name。但是当我创建一个新的 MessageType 实例时,Name 属性的访问修饰符是公共的,因为我想从外部类(我的数据访问层)设置它。

我可以将其更改为内部属性,以便我的类可以像公共变量一样访问它,并且不允许我的其他应用程序访问修改它。

这仍然感觉不对,因为它似乎是公共财产。在这种情况下,公共访问修饰符是否不好?任何提示或建议将不胜感激。

谢谢。

0 投票
5 回答
16273 浏览

c# - 内部类中的公共和内部成员?

好的,所以这可能是一个有点愚蠢的问题,而且肯定有明显的答案,但我很好奇我是否错过了这里的任何微妙之处。

在类中声明的成员和public在类中声明的成员之间在可见性/可用性方面有什么区别吗?internalinternalinternal

即介于

如果将方法声明为publicand virtual,然后在派生类中覆盖它,那么public使用这个修饰符的原因就很清楚了。但是,这是唯一的情况……我是否还缺少其他东西?

0 投票
2 回答
3446 浏览

c++ - 错误:“void Base::output()”在此上下文中受到保护

我对以下代码生成的错误感到困惑。在 Derived::doStuff 中,我可以通过调用 Base::output 直接访问它。

为什么我不能output()在我可以调用的同一上下文中创建一个指针output()

(我认为受保护/私有管理是否可以在特定上下文中使用名称,但显然这是不完整的?)

我的写作方法是callback(this, &Derived::output);不是callback(this, Base::output)正确的解决方案?

编辑:我很想知道这在标准中的位置,但大多数情况下我只是想围绕这个概念来思考。我认为我的问题是callback无法访问 的受保护成员,但如果您将指针传递给它Derived,它就可以调用。that from 的 protectedDerived::output成员与that from 的 protected 成员有何不同?DerivedDerivedDerivedBase

0 投票
1 回答
53 浏览

inheritance - 为什么我无法访问我的 Web 应用程序中的受保护属性

我有一个 Web 应用程序,它有一个 Base 类,我在其中定义了网页共有的所有属性。基类扩展 System.Web.UI.Page

此外,我有一个基本用户控件类,其中定义了用户控件共有的所有属性。基本用户控件扩展 System.Web.UI.UserControl

两个基类中的所有属性都受到保护。

所有的网页都扩展了基类。

所有控件都扩展了基本用户控件类。

问题是我无法从用户访问基类中定义的属性

控件,我无法在基本用户控件中扩展两个类

问题是

如何从用户控件中访问基类中定义的属性?

我希望我已经清楚了

谢谢

0 投票
2 回答
1903 浏览

java - Java public/private 和 static 修饰符如何影响在一行上声明的多个变量?

以下是等价的吗?

如果是这样,它们是否仍然具有具有不同值的相同修饰符?

0 投票
3 回答
1252 浏览

java - Java 设计问题 - 类、函数、访问修饰符

我是Java的新手。我有一些设计问题。

假设我有一个爬虫应用程序,它执行以下操作: 1. 爬取一个 url 并获取其内容 2. 解析内容 3. 显示内容

  1. 你如何决定实现一个函数还是一个类?-- 解析器应该是爬虫类的一个函数,还是它本身应该是一个类,所以它也可以被其他应用程序使用?-- 如果它应该是一个类,它应该是保护类还是公共类?

  2. 您如何在实现公共类或受保护类之间做出决定?-- 如果我必须创建一个类来从解析的内容生成统计信息,例如,该类应该受到保护(因此只有爬虫类可以访问它)还是应该是公共的?

谢谢罗恩

0 投票
4 回答
2325 浏览

c# - 在声明(.NET)中强制使用接口而不是具体实现

在 C++ 中,您可以执行以下操作:

derived_class覆盖该方法并do_something()使其成为private. 效果是,调用此方法的唯一方法是这样的:

如果将对象声明为 type derived_class,则不能调用该方法,因为它是私有的:

我认为这很好,因为如果您创建一个用作接口的抽象类,您可以确保没有人不小心将字段声明为具体类型,但始终使用接口类。

由于通常在 C#/.NET 中,不允许在覆盖方法时缩小访问范围publicprivate有没有办法在这里实现类似的效果?

0 投票
4 回答
3906 浏览

java - 外部类访问包私有方法

假设我的包中有一个类,org.jake并且它有一个具有默认访问权限的方法(无修饰符)。然后该方法仅在包内可见。

但是,当有人收到我的框架的 jar 时,是什么阻止他们编写新类,将其包声明为org.jake,并使用我所谓的不可见方法?

换句话说,我能做些什么来防止这种情况发生吗?