问题标签 [backing-field]

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 回答
673 浏览

c# - 通过反射发射在构造函数中分配字段

寻找有关如何分配带有支持字段的属性的解决方案,这些支持字段是我在实例构造函数中在 RT 中动态创建的。签名与编译器生成的属性匹配为自动属性。从本质上讲,它们等同于下面列出的代码。

使用 .NET Core 2.0

问题:如何使用 Emit 在构造函数中分配支持字段?

例如:




迭代接口中定义的方法,并在新类型中创建一个带有私有设置器的新属性和访问器。

0 投票
1 回答
890 浏览

c# - 在 C# 中使用反射设置属性 {get;}

我在 3rd 方库中有一个类,只有一个get;属性。

我想Name使用反射或任何其他合适的方法设置属性,但我不知道 Name 从哪里获取它的值。我的意思是我不知道它是否有这样的支持字段?

或者是这样的:

我该如何设置?

0 投票
1 回答
1322 浏览

properties - 如何在 Kotlin 中重命名属性的支持字段

编辑(再次):如果有人感兴趣,您可以在 tracker 上关注此问题


编辑:我知道支持属性,它们将涵盖大多数用例。我不是在寻找解决方法,而是在专门寻找是否有办法命名支持字段。


您可以像这样轻松地重命名属性的 getter 和 setter

但我无法弄清楚如何更改支持字段的名称,即使使用@field目标。

上面给出了一个错误:

此注释不适用于目标“带有支持字段的成员属性”并使用站点目标“@field”


最终我想要的是与 JavaFX 互操作。在定义 JavaFX 属性时,您通常遵循以下标准(使用一些额外的代码使其变得懒惰):

所以我想要的是这样的(虽然@field显然不起作用):

这将允许 FXML 的绑定功能(使用反射),遵循 Java 中的标准约定,并且在 Kotlin 中仍然很好且易于使用。

在这种情况下,我不能使用支持属性,因为我需要该color字段是 a ObjectProperty<Color>,但 getter 和 setter forcolor应该是 a Color

幸运的是,来自 JavaFX 的反射足够智能,仍然可以仅使用@get:JvmName("colorProperty").,但是在字段名称重叠的类似情况下可以使用这种重命名。

0 投票
5 回答
1689 浏览

java - 仅当它为空时才在 Kotlin 中实例化一个变量?

可以说,我有一个变量:

var myObject : MyObject? = null

它应该在某个地方清除:

并且在使用的地方绝对不能为空。在Java中我可以做这样的事情:

问题:如何在 Kotlin 中实现这一点?

我找到了使用 elvis-operator 的建议:

但这不会将结果(如果MyObject将创建新实例)分配给myObject变量。请帮我解决和解释。提前谢谢

0 投票
1 回答
106 浏览

c# - 属性设置器中的支持字段与“值”关键字

我在 setter 中有一个带有支持字段和一些逻辑的属性。我想知道我应该使用value关键字还是支持字段。

选项1:

选项 2:

他们谁有更好的表现?我在我的机器上运行的测试显示没有显着差异,但我不确定我的机器是否足以了解整个情况。

注意:我确实意识到这可能会将微优化提升到一个全新的荒谬水平,但我仍然很想知道是否有明确的答案。


编辑:这个问题不是基于意见的,因为我在问是否存在客观差异。

0 投票
1 回答
27 浏览

kotlin - 如何显示支持字段中的值

我想运行下面提到的简单示例。eclipse 生成错误 说:

请让我知道如何修复此错误以及为什么它发生在我尝试使用支持字段的以下代码中。但是,它们在代码中的使用方式并没有提供预期的输出。请参阅输出部分。

如何显示支持字段的输出

代码

输出

0 投票
1 回答
106 浏览

kotlin - 如何在 kotlin 中将 get() 与支持字段一起使用

在下面的代码中,我试图创建一个 getter 方法作为支持字段。因此,当调用 getLastNameLen 属性时,它应该返回 lastNameset 的长度。

请参考下面的代码并帮助我修复错误。

如何显示支持字段的输出

代码

输出

0 投票
1 回答
168 浏览

properties - 为什么我们需要 EF Core 中的支持字段?

为什么我们需要 EF Core 中的支持字段?

为什么有人在处理实体时要使用字段而不是属性?我想不出这样的情况。这可能意味着我不理解或者我遗漏了有关这些字段的某些内容,因为我认为我可以完成任何可以对具有属性的字段进行的操作。

我正在通过这里的教程学习 EF Core 。

0 投票
1 回答
1613 浏览

entity-framework - EF Core 3.1:导航属性在首先调用支持字段时不会延迟加载实体

我正在使用 EF Core 3.1.7。DbContext 设置了 UseLazyLoadingProxies。Fluent API 映射用于将实体映射到数据库。我有一个带有导航属性的实体,该属性使用支持字段。加载和保存到数据库似乎工作正常,除了在我访问导航属性之前访问支持字段时出现问题。

似乎引用的实体在访问支持字段时不会延迟加载。这是 Castle.Proxy 类的缺陷还是配置不正确?

比较 IsRegisteredForACourse 的 Student 类实现与 IsRegisteredForACourse2 的相关行为。

数据库表和关系。 学生和课程

学生实体

课程实体

数据库上下文

演示问题的测试程序。

控制台输出

0 投票
2 回答
181 浏览

android - Android : 在 Java 中翻译 Kotlin ViewModel 支持字段封装技术

在用 Kotlin 编写的 Android 应用中,ViewMoel 中的 LiveData 属性可以使用支持字段技术进行封装,如下所示:

如何在 Java 中翻译它以获得相同级别的封装?