我可以在属性本身而不是包含的类中定义setter和getter吗?

吉尔拉迪

假设我想让我的班级做关于属性访问的事情。我当然可以在设置者和获取者中做到这一点:

class Foo {
    set bar (v) {
        // do stuff
    }
}

但是,如果要将相同的行为附加到多个属性,则必须为每个属性显式定义相同的setter和getter。(我想到的用例是一个可观察的实例,即一个知道何时更改其属性的类)。

我想做的是这样的:

class Foo {
    var bar = new AttributeWithAccessBehavior();
}

Python使用描述符执行此操作-Dart中最接近的是什么?

贡特·佐克鲍尔

AFAIK没有任何可重用的getter / setter语法。

您可以将一个函数分配给一个字段,您可以使用调用符号对其进行访问(),但是您必须小心地调用该函数,而不是覆盖字段分配。

可以模拟功能的类是类似但功能更强大的替代方法(请参见https://www.dartlang.org/articles/emulating-functions/

具有call方法的可以像方法一样使用。这类似于上述分配的功能,但是您还可以存储状态信息。

如果实现了实际的getter / setter,那么您当然可以委托给您想要的任何东西,但这显然不是您想要的。

对于您提到的用例,有一个observe包装。我不知道它是如何解决问题的,但是效果很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift中的存储属性可以有getter和setter吗?

来自分类Dev

在扩展类上,我可以使用实现多个接口的类的getter和setter方法吗

来自分类Dev

未持久化的属性可以有 getter 和 setter 吗?

来自分类Dev

我可以在子定义中询问类的属性吗?

来自分类Dev

我可以在getter / setter中执行其他逻辑吗?

来自分类Dev

使用getter和setter与在JavaScript中定义属性

来自分类Dev

使用getter和setter与在JavaScript中定义属性

来自分类Dev

引用属性而不是getter和setter

来自分类Dev

用于getter和setter的对象定义属性

来自分类Dev

我可以在没有相应的getter的情况下对Java setter使用属性语法吗?

来自分类Dev

我应该在类实现中使用getter和setter吗?

来自分类Dev

我可以在Java MVC模型中使用getter和setter吗

来自分类Dev

我们可以通过创建私有getInstance方法和公共getter setter方法来制作Singleton类吗?

来自分类Dev

我们可以通过创建私有getInstance方法和公共getter setter方法来制作Singleton类吗?

来自分类Dev

我可以像在Objective-C中那样为Swift类定义属性的方法吗?

来自分类Dev

我可以在变量名称由属性本身定义的情况下对变量进行解构吗?

来自分类Dev

我可以从自定义类(不是活动类)中为上下文菜单充气吗?

来自分类Dev

对象(而不是对象属性)的Javascript getter和setter

来自分类Dev

ASP.MVC中的Getter和Setter可以实例化一个对象吗?

来自分类Dev

我可以在用于HTTP基本身份验证的密码中包含符号吗

来自分类Dev

我可以在用于HTTP基本身份验证的密码中包含符号吗

来自分类Dev

我可以使用一种场景作为元步骤,而不是在Context类中定义它吗?

来自分类Dev

我无法为受保护的属性编写 getter 和 setter

来自分类Dev

我可以在抽象基类中定义构造函数吗?

来自分类Dev

我可以在Object Pascal的类中定义类型吗?

来自分类Dev

我可以避免在类定义中添加空格吗?

来自分类Dev

我可以在子类中重新定义超类的属性吗?(也许是 c# 的新修饰符?)

来自分类常见问题

ECMAScript 6类中的getter和setter是什么?

来自分类Dev

类 C++ 中数组元素的 Getter 和 Setter

Related 相关文章

  1. 1

    Swift中的存储属性可以有getter和setter吗?

  2. 2

    在扩展类上,我可以使用实现多个接口的类的getter和setter方法吗

  3. 3

    未持久化的属性可以有 getter 和 setter 吗?

  4. 4

    我可以在子定义中询问类的属性吗?

  5. 5

    我可以在getter / setter中执行其他逻辑吗?

  6. 6

    使用getter和setter与在JavaScript中定义属性

  7. 7

    使用getter和setter与在JavaScript中定义属性

  8. 8

    引用属性而不是getter和setter

  9. 9

    用于getter和setter的对象定义属性

  10. 10

    我可以在没有相应的getter的情况下对Java setter使用属性语法吗?

  11. 11

    我应该在类实现中使用getter和setter吗?

  12. 12

    我可以在Java MVC模型中使用getter和setter吗

  13. 13

    我们可以通过创建私有getInstance方法和公共getter setter方法来制作Singleton类吗?

  14. 14

    我们可以通过创建私有getInstance方法和公共getter setter方法来制作Singleton类吗?

  15. 15

    我可以像在Objective-C中那样为Swift类定义属性的方法吗?

  16. 16

    我可以在变量名称由属性本身定义的情况下对变量进行解构吗?

  17. 17

    我可以从自定义类(不是活动类)中为上下文菜单充气吗?

  18. 18

    对象(而不是对象属性)的Javascript getter和setter

  19. 19

    ASP.MVC中的Getter和Setter可以实例化一个对象吗?

  20. 20

    我可以在用于HTTP基本身份验证的密码中包含符号吗

  21. 21

    我可以在用于HTTP基本身份验证的密码中包含符号吗

  22. 22

    我可以使用一种场景作为元步骤,而不是在Context类中定义它吗?

  23. 23

    我无法为受保护的属性编写 getter 和 setter

  24. 24

    我可以在抽象基类中定义构造函数吗?

  25. 25

    我可以在Object Pascal的类中定义类型吗?

  26. 26

    我可以避免在类定义中添加空格吗?

  27. 27

    我可以在子类中重新定义超类的属性吗?(也许是 c# 的新修饰符?)

  28. 28

    ECMAScript 6类中的getter和setter是什么?

  29. 29

    类 C++ 中数组元素的 Getter 和 Setter

热门标签

归档