问题标签 [accessor]

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 投票
1 回答
186 浏览

ruby - ruby 相当于 c# 的 internal 关键字?

在 C# 中,“内部”类或方法只能从它所在的程序集中调用......我知道 Ruby 没有“程序集”或任何类型的真正包(除了 gems,但它们不是'根本不是一回事),但我想知道是否有办法限制可以调用方法的位置,类似于内部?

我正在更新一个小框架并创建了一个包含 3 个方法的类。我希望能够仅从我的框架调用 3 种方法中的 2 种,并从任何地方调用第三种方法。这在红宝石中可能吗?还是我要解决这个错误,应该创建两个单独的类?或者 ?

0 投票
5 回答
5647 浏览

vb.net - Visual Basic .Net 中的属性访问器

有人可以向我解释 Get 和 Set 属性的概念吗?它只是不适合我。

0 投票
4 回答
148 浏览

objective-c - 使用访问器访问 IB 元素的实例有什么好处?

通常,当我们必须将接口元素链接到类的字段时,我们使用关键字“IBOutlet”来通知预编译器:

在实现中我们直接使用指针theWindow来调用类NSWindow的方法!

但是告诉预编译器为“theWindow”指向的对象创建一些访问器并通过访问器管理对象有什么好处呢?

例子:

使用第二种解决方案(针对所有指向接口元素的指针)是否会降低应用程序的性能?

什么时候使用第二种方式而不是第一种方式是一个好习惯?

谢谢!

0 投票
2 回答
822 浏览

iphone - Objective-C,类抽象和访问这些变量

我在 java 和 c++ 开发方面有很多经验,所以类和抽象数据对我来说很容易。不久前我才开始目标 C,我主要是在课堂上与 globals 一起工作,一切进展顺利。我刚刚决定抽象我的大部分代码以减少意大利面条式代码,但我遇到了一个自周六以来我一直无法克服的问题。

大纲:

我正在做一个纸牌游戏。我最近将卡片数据抽象为一个包含 3 个变量的类;(int)i_cardValue、(int)i_cardSuit 和 (UIImage *)uii_cardImage。我通过调用创建了一张卡片

我还抽象了引擎部分(基本上是套牌功能,例如洗牌和套牌管理)。甲板是一个可变数组,我有一个初始化甲板功能。

现在,在我的视图控制器中,我调用了 initDeck,然后我使用诸如

pce_Engine 是 PlayingCardEngine 类型的变量。我将 NSLog 行放入 initDeck,当我运行我的程序时,它们不会显示在控制台中。他们没有被调用,所以数组没有被分配,因此我不能向数组添加东西?我以为我做得很好,但是要么我做错了,要么我错过了一些东西,因为将它添加到视图中不会让它显示出来。使用NSLog,deck == nil,所以我想问题是我没有正确访问deck,因此没有添加值,并且到处只有空变量:(。我尝试查看很多关于目标c的教程,但我什至还没有找到一个抽象的,所以我一直无法找到我的问题。

谁能指出我正确的方向?

0 投票
2 回答
102 浏览

.net - 访问私有类中的成员

当我需要访问嵌入式私有类中的类的私有成员时,我遇到了一种情况。我怎样才能有效地做到这一点。

NotaBene:我将控件动态添加到表单中,因此我可以确定在创建后它们已经订阅了此事件。

0 投票
7 回答
228 浏览

oop - 定义访问修饰符有什么意义?

我了解它们之间的区别(至少在 C# 中)。我知道它们对分配给它们的元素的影响。我不明白为什么实施它们很重要——为什么不把所有东西都公开?

我读到的关于这个主题的材料通常是关于类和方法不应该对其他人进行不必要的访问,但我还没有遇到一个例子说明为什么/如何这将是一件坏事。这似乎是一件安全的事情,但我是程序员;我创建方法并定义它们将(或不会)做什么。我为什么要花费所有精力编写一个函数来尝试更改它不应该更改的变量,或者尝试读取另一个类中的信息,如果那样会很糟糕?

如果这是一个愚蠢的问题,我很抱歉。这只是我在我读过的关于 OOP 的第一篇文章中遇到的,我从来没有觉得它真的很成功。

0 投票
3 回答
218 浏览

.net - 访问嵌套类中的所有者成员

我的表单中有一个特殊标签,它应该在工具提示中显示一些文本。标签在表单中被声明为私有类(嵌套控件),并且应该“看到”父表单的 ToolTip 控件。

这是代码。当然,我在这里得到错误,因为在所有者表单控件集合中添加私有控件之前调用了构造函数......

编辑: 是否有可能不在构造函数中传递 form1 或 toolTip 控件?

0 投票
2 回答
418 浏览

objective-c - 我应该直接在类实现中访问 Ivars 吗?

我在这个问题上已经有一段时间了,但我想知道人们对直接从 Objective-C 类实现中访问实例变量有何看法?

使用访问器和修改器让很多事情变得简单,但是对于简单的事情,直接访问实例变量是不是很糟糕?私有实例变量的最佳实践是否不同?

0 投票
3 回答
35473 浏览

c# - 在 VB.NET 和 C# 可见性中静态/共享

我在 VB.NET 和 C# (.NET2) 中遇到了静态/共享成员可见性的情况。在我看来,在 VB.NET 中有点奇怪:

用法A.Instance.Name//只有名称是“可见的”


VB.NET:

用法

// 共享成员的行为就像一个公共类我可以重复它到无限..

这是 Microsoft 的疏忽还是 VB.NET 的“功能”?

0 投票
8 回答
2346 浏览

c++ - “向前牢不可破”的访问器类模板 [C++]

除非我完全弄错了,否则 getter/setter 模式是用于两件事的常用模式:

  1. 制作一个私有变量,以便它可以使用,但不能修改,只提供一个getVariable方法(或者,更罕见的是,只可修改,只提供一个setVariable方法)。
  2. 为了确保将来,如果您碰巧遇到一个问题,一个好的解决方案只是在变量进入和/或退出类之前对其进行处理,您可以通过使用实际实现来处理变量在 getter 和 setter 方法上,而不是简单地返回或设置值。这样,更改不会传播到代码的其余部分。

问题 #1:我是否遗漏了对访问器的任何使用,或者我的任何假设是否不正确?我不确定我是否正确。

问题 #2:是否有任何模板优点可以让我不必为我的成员变量编写访问器?我没有找到。

问题 #3:下面的类模板是否是实现 getter 而无需实际编写访问器的好方法?

这对我来说看起来很公平,我什至可以get通过使用其他一些部分模板专业化技巧来重新实现逻辑。这同样适用于某种 Setter 甚至 GetterSetter 类模板。

你怎么认为?