即使使用_表示私有,我可以将其设置为属性吗?

时间:2016-10-21 20:57:48

标签: dart dart-polymer

我有2个变量。 _model_model。从本质上讲,模型将成为人们用我的模板绑定的属性。当它绑定时,它将设置_model,然后{d}将在dart和标记中使用_model = new Model();

我的问题是这个。我知道在Dart中,下划线是私有变量的外延。我不确定它是私有是否包含与Dart类相关的标记范围。

话虽如此。看来,当我设置:

set("_model", new Model());

该类理解它很好,但如果我想通过以下方式使用 set 通知标记:

_model

班级不明白。这几乎就像_model有两个不同的范围。也许我可以通过将componentModel的所有引用更改为类似for (vector<string>::const_iterator it = words.begin(); it != words.end();) { if (find(largest_family.begin(), largest_family.end(), *it) == largest_family.end()) { it = words.erase(it); } else { ++it; } } 或其他根本不使用下划线的内容来实现此目的。

有人可以更清楚地向我解释这一点,因为我认为在预先挂起一个下划线并且似乎设置的工作原理时我会遗漏一些东西。

1 个答案:

答案 0 :(得分:0)

不确定您的期望

_model = new Model();

这是正常的代码,预计会有效。

set("_model", new Model());

需要使用反射来设置_model属性的值,并且我非常确定这不起作用,因为无法访问其他库中的私有字段。变换器可以有一种方法来更改代码(例如添加公共getter和setter),这将允许代码访问私有成员。但据我记忆,事实并非如此。