问题标签 [getter-setter]
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.
c# - Getter、setter 和属性最佳实践。Java 与 C#
我现在正在上 C# 课程,我正在尝试找出最好的做事方式。我来自 Java 背景,所以我只熟悉 Java 最佳实践;我是 C# 新手!
在 Java 中,如果我有私有财产,我会这样做;
在 C# 中,我看到有很多方法可以做到这一点。
我可以像 Java 那样做:
或者我可以这样做:
或者:
我应该使用哪一个,每种方法有哪些注意事项或微妙之处?在创建类时,我遵循我从 Java 中了解的一般最佳实践(尤其是阅读有效 Java)。因此,例如,我赞成不变性(仅在必要时提供设置器)。我只是想知道这些实践如何与 C# 中提供 setter 和 getter 的各种方式相适应;本质上,我如何将 Java 世界的最佳实践转化为 C#?
编辑
我将其发布为对 Jon Skeet 答案的评论,但后来它变得很长:
那么一个重要的属性(即,可能有重要的处理和验证)呢?我是否仍然可以通过公共属性公开它,但将逻辑封装在get
and中set
?为什么/应该通过专用的 setter 和 getter 方法(具有相关的处理和验证逻辑)来执行此操作。
php - 单元测试访问器(getter 和 setter)
给定以下方法:
假设将来它们可能会变得更复杂:
- 您将如何为这些方法编写单元测试?
- 只有一种测试方法?
- 我应该跳过那些测试吗?
- 代码覆盖率怎么样?
@covers
注释呢?- 也许在抽象测试用例中实现一些通用测试方法?
(我使用 Netbeans 7)
这似乎是在浪费时间,但我不介意 IDE 是否会自动生成这些测试方法。
(这就像测试 getter 和 setter 一样——失败!)。无论如何,如果他们失败了;依赖它们的方法不会失败吗?
那么,代码覆盖率呢?
iphone - 通过objective-c中的类访问变量
在我的项目中,我的第一个视图是日志视图,我想将用户名获取到其他类中。我真的不知道如何在其他课程中获得它,我在stackoverflow中搜索并没有找到(我尝试了几件事但没有成功)我告诉你我是如何尝试这样做的:
登录.h
登录.m
家.m
我在我的所有项目中都需要这个值,以显示有关已连接客户端的信息。
我只需要一个提示或我可以使用的示例代码。
编辑:我按照给出的建议更改了我的代码,如果我错过了什么,请告诉我
c# - C# getter 和 setter 简写
如果我对这条线的内部运作的理解是正确的:
然后它在幕后这样做:
我真正需要的是:
但我想这样写:
哪个不起作用。问题是我需要执行 IsDirty 的一些对象有几十个属性,我希望有一种方法可以使用自动 getter/setter,但在修改字段时仍然设置 IsDirty。
这是可能的,还是我只需要让自己在我的课程中增加三倍的代码量?
iphone - CGFloats,浮点数设置为零
我有一个自定义类 Custom.mm,我在其中尝试使用控制器类 MainController 中的设置器设置浮点值。Custom 实例被键入为 id,因为它是一个 Obj-C++ 文件,并且在编译时指向正确的类对我来说效果很好。一切正常,实例已验证。如果我将数量变量设置为 int 类型并传递 int ,它就可以正常工作。与任何其他值或对象相同——除了浮点数。由于某种原因,浮点数(float、CGFloat 等)在 Custom.mm 类中设置为 0。这不是 NSLog 或任何东西的问题——我已经用断点检查了 amount 变量,一切正常但浮动。
java - 对 Java 封装概念感到困惑
再会!
我正在阅读一本关于封装的 Java 书籍,其中提到了 getter 和 setter 方法。
我已经读过要隐藏属性,我必须将我的实例变量标记为“PRIVATE”并使用“PUBLIC”方法getter and setter
来访问数据。所以我尝试制作一个类似但不是常规的代码,如下所示:
我上面的代码是否公开了我的变量,因为我直接分配了它?我怎样才能做得更好?如果我getter and setter
改用传统方法并将值分配给另一个类会更好吗?“隐藏数据”是什么意思?
谢谢你。
scala - Scala 构造函数、命名参数和隐式 Getter/Setter
是否可以在 Scala 构造函数中使用命名参数,然后在不破坏构造函数接口或使代码非常难看的情况下覆盖 getter 和 setter?
获取以下 scala 代码
干净整洁。这将创建一个名为 person 的简单类,我们可以通过以下方式使用它
稍后,我们决定要向 FirstName 设置器添加一些验证。因此,我们创建一个新的私有局部变量并覆盖 getter 和 setter 方法
仍然有些干净,但是为了做到这一点,我们不得不更改构造函数参数名称,从而破坏了外部接口。
我想出的第一个解决这个问题的方法是
这有点丑陋和不雅,并且消除了我最初使用 scala 的大部分好理由。
有没有更好的方法来做到这一点?
tl;dr 如何覆盖默认构造函数中定义的成员的 getter/setter 而不使代码丑陋或更改公共接口?
java - 拥有大量的 getter 和 setter 是个好主意吗?
在编写您打算开源的应用程序(在 java 中)时,拥有大量 getter 和 setter 并将变量设为私有通常是一个好主意吗?更具体地说,如果那是一个android 应用程序,上述问题的答案是否仍然成立?
编辑:如果你们能给我一个具体的理由说明为什么它更好,那就太棒了。
java - 为什么我不能更改 getter 返回的集合?
我有一个带有 getter 的类,它返回其私有字段 List。
但是 getter 方法的调用者不能在该列表中添加或删除元素。
引发了 UnsupportedOperationException。
我知道 getter 返回对该列表的引用,但为什么该列表在调用方是只读的?注意我没有在 getter 中返回 Collections.unmodifiableList() 。
更新:
抱歉,我通过 Arrays.asList 创建了一个固定大小的列表,这就是为什么 ;)
java - Getter 和 Setter、线程和 Java
在学校里,他们教我们在 Java 中使用 getter 和 setter。最近我一直在阅读这样的事情是不好的,而不是 OOP。好的,所以我可以编写一些代码,只使用构造函数设置数据并返回所需的数据。
你怎么不使用带线程的getter?当你执行一个线程时,它的类型总是 void 并且在 java 中有全局变量。. .. 那么如何在没有 getter 方法的情况下从线程中获取数据呢?