问题标签 [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 投票
2 回答
3943 浏览

c# - 如何在结构构造函数中设置自动属性支持字段的值?

给定这样的结构:

当然,会生成一个编译器错误,读取The 'this' object cannot be used before its all fields are assigned to

有没有办法为支持字段或属性本身分配值,或者我是否必须使用我自己的显式支持字段以老式方式实现属性?

0 投票
2 回答
1225 浏览

c# - 如何使用流利的 nhibernate 访问基类的支持字段?

如何在映射类中设置访问策略以指向基本 _photos 字段?

我目前正在使用以下方法来尝试定位支持字段,但由于找不到它而引发异常。

我尝试将支持字段 _photos 直接移动到班级中并且访问有效。那么如何访问基类的支持字段?

0 投票
4 回答
1531 浏览

.net - 读/写操作中的属性与支持字段之间是否存在性能差异?

当在一个类中处理它自己的字段和属性时,我通常只在它执行某些功能时使用该属性(例如限制值或验证或其他)。否则我更喜欢直接读/写支持字段。

我不知何故想到这将是一种更普遍的执行方式,但我突然想到我并没有任何证据支持这个想法。

除了惯例或口味之外,一种方法和另一种方法之间是否存在实际的性能因素?

0 投票
1 回答
920 浏览

.net - Fluent NHibernate 中 Access.BackingField 的用例是什么?

的文档Access.BackingField()表明:

设置访问策略以使用自动属性的支持字段。

我知道自动属性是用支持字段编译的,但是如果属性根据定义是一个普通的 getter/setter,那么直接进入支持字段而不是使用 setter(即使用 FNH 默认值)可以获得什么优势。

我能想到的唯一一件事是,如果以后有人向 setter 添加逻辑,则可能希望映射中断。

我错过了什么?

0 投票
2 回答
2006 浏览

wpf - 如何通过包含它的对象的接口公开私有内部对象的依赖属性?

我们有一个自定义面板类,它通过内部 DoubleAnimation 对象为其子级设置动画。但是,我们希望将动画的 Duration 依赖属性公开为面板的公共属性,以便用户在使用我们的面板时可以在其 XAML 中更改它。但是我们不想暴露动画对象的任何其他部分,只是持续时间。

不断向我建议的第一件事是使用 PropertyChanged 通知,但这仅适用于 setter,而不适用于 getter。我们也不能简单地创建一个 .NET 属性,因为 XAML 完全绕过了 .NET 属性。

我的一个同事有一个聪明的主意……在外部属性和内部对象的属性之间使用双向数据绑定,这实际上看起来是一个非常巧妙的解决方案。但是,除了数据绑定之外,还有另一种/更好的方法来做到这一点......通过它包含对象的公共接口公开内部对象的依赖属性?

更新:

看起来双向 DataBinding 是要走的路。(感谢@Jeff!)为此,我发现这是设置外部 DP 的最佳方式,因此它是内部对象 DP 的完美匹配——元数据、默认值和全部!然后使用 Jeff 的绑定技巧,你就完成了!

0 投票
1 回答
765 浏览

nhibernate - Fluent NHibernate:如何更改自动映射字符串集合的底层 sql 类型?

我有一堂课:

Fluent NHibernate自动映射IList<string> ChildPages' ' 时,会创建一个 ' ' 连接表,其中包含集合中每个字符串的支持字段。ChildPagesnvarchar(255)

但问题是我希望 sql 支持字段为“ text”,这样我就可以为该实体输入冗长的条目。

进行此更改的最简单方法是什么?

您如何更改自动映射的原始集合的底层类型?

另外,对于额外的点,您将如何使用约定或映射覆盖来做到这一点?

谢谢!

0 投票
4 回答
490 浏览

c# - C# 风格:可以将属性与其支持字段分组吗?

我喜欢像这样组织简单的属性:

我一直在玩StyleCop,它对我在构造函数之后放置字段大喊大叫。只要该字段从未在属性之外引用,这种样式是否被普遍接受?注意:我意识到这涉及个人偏好,但我想知道是否有关于这个问题的普遍共识。

0 投票
1 回答
403 浏览

nhibernate - 具有私有支持字段的休眠集合查询

我在学生和教授 (_students_selected) 之间的数据库(带有桥接表)中建模了一个多对多关系,在我的实体中,我将其建模为一对多关系,即教授有一个学生。

上述方法在获取数据时有效,但是在查询教授时,我无法为学生添加 where 条件,因为实际数据已映射到私有支持字段 _students。我如何查询这个?下面的代码不起作用。

0 投票
1 回答
199 浏览

nhibernate - 您如何命名(和映射)支持属性?

在少数情况下,出于实际原因,我有一个需要“支持属性”的属性。

例如,我有一个具有 Name 属性的类型——访问时不会发生值的转换,它只是触发某种动作;一个副作用,如果你愿意的话。(为了讨论,这并不重要,但在这种特殊情况下,名称在更改时会被复制到其他地方。)

比方说:

因此“_name”属性映射到数据库,但保持受保护/内部,因此不能直接修改。第二个公共属性“名称”提供实际访问权限。

我以这种方式设置它的原因是,如果该操作直接构建到映射的“_name”属性的设置方法中,它将在从数据库中水合对象时触发,这不是我想要的。

这一切都很好。

问题是,当您需要查询此类型时,尝试查询 Person.Name 将不起作用,因为该属性未映射!

我不喜欢这一点的事实是,您正在编写针对 Person.Name 的代码,但必须针对 Person._name 编写查询,这容易出错且令人困惑。

有没有更好的方法来解决这个问题?

0 投票
3 回答
8287 浏览

c# - 为什么 Type.GetFields() 不返回基类中的支持字段?

在 C# 中,如果Type.GetFields()与表示派生类的类型一起使用,它将返回 a) 派生类中所有显式声明的字段,b) 派生类中自动属性的所有支持字段,以及 c) 基类中所有显式声明的字段班级。

为什么缺少基类中自动属性的 d) 支持字段?

例子:

这将只显示 Bar 的支持字段,而不是 Foo。