WPF属性系统如何经济?

2023-12-30

据说WPF的设计者已经让它变得经济或者性能更高了。有人可以用一个例子来解释一下幕后发生的事情使 WPF 属性系统更加经济吗?


您可能指的是依赖属性比普通 CLR 属性“便宜”这一事实。

简单来说:

依赖属性是使用稀疏数据结构实现的仅当在对象上设置属性值时才为其分配内存。相反,标准 CLR 属性值作为字段存储在定义该属性的类的每个对象,即使所有这些对象都将属性设置为其默认值。

例如,如果我们有 100 个对象,它们具有 100 个类型的 CLR 属性int每个,那么我们使用 10000ints 的内存价值,即使所有这些都具有相同的默认值 (0)。

如果该属性是依赖属性,则我们根本不会使用任何额外的内存:WPF 不需要记住任何属性的值,因为它知道您没有更改默认值。

当然,上面是一个相当简单的解释,并没有涵盖依赖属性相对于 CLR 属性的所有优点,但它应该充分解释了“DP 具有更高的性能”这一说法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF属性系统如何经济? 的相关文章

随机推荐

  • 如何使用clients2.google.com 下载CRX?

    上周我遇到了一些困难 我已经能够使用以下链接格式使用 Chrome 商店中列出的扩展名的 ID 下载 crx 文件 现在 最近几周发布到 chrome 商店的任何新 chrome 扩展程序都将无法使用 它不会下载任何东西 使用fiddler
  • 确保用户发布的博客评论安全

    我正在我的网站上创建博客引擎 没有什么花哨 用户将注册一些基本信息 包括评论本身 即该问题的问题 在评论字段中 用户可以编写一些文本 但目前没有什么可以阻止他在那里编写任何有害的内容 这会在使用评论渲染页面时弄乱页面 所以我想知道完成这三个
  • Mat-checkbox 已选中但不更改复选框状态

    我正在实现一个语言切换组件 它显示复选框 一个用于应用程序的每种语言 翻译为 ngx translate 单击其中一个复选框时 应用程序语言已正确切换 但单击的 mat checkbox 仍未选中 模板
  • 使用 as.Date 格式化月份缩写[重复]

    这个问题在这里已经有答案了 我正在处理每月数据 并有一个日期字符向量 格式如下 Sep 2012 Aug 2012 Jul 2012 等等 回到 1981 年 我尝试过使用 as Date dates b Y where b代表月份缩写 但
  • 使用集成 Windows 身份验证时提示输入登录详细信息

    对于 ASP NET 应用程序 使用集成 Windows 身份验证时如何提示用户输入用户名 密码 我想在页面后面的代码中使用 C 来执行此操作 我想要一些页面 例如http 内网 admin http intranet admin 提示输入
  • iPhone 的 PhoneGap 数据库应用有什么要求?

    我想创建一个访问数据库的简单应用程序 Does PhoneGap它的框架中有这个功能吗 它使用哪种数据库技术 MySQL 有数据库吗 为 iPhone 开发 PhoneGap 数据库应用程序有哪些要求 数据库 Sqlite 数据库 直接嵌入
  • 如何计算java中相同(PALINDROME)的单词数

    我是一名 Java 开发新手 我想用Java编写代码来计算段落中回文词的数量 假设是 用户可以输入包含尽可能多的句子的段落 每个单词之间以空格分隔 每个句子之间以句点分隔 单词前后的标点符号将被忽略 而单词内部的标点符号将被计算在内 输入示
  • Python:从类B中的类A调用方法A?

    有很多与此类似的问题 但没有一个答案能切中要害 所以请耐心等待 我正在尽最大努力使用 Python 学习 OOP 但我不断遇到错误 比如这个 这让我觉得这一切都是毫无意义的 只使用方法会更容易 这是我的代码 class TheGUI wx
  • 在数字海洋上部署的 laravel 网站显示空白屏幕并尝试通过 https 加载 css 和 js 文件

    我在这里完成了关于部署 laravel 应用程序的教程之一https www techalyst com posts laravel hosting with digital ocean droplet step by step tutor
  • 如何使用 guizero 在 python 中知道 Tic Tac Toe 中谁是获胜者

    我创建了一个名为 Tic Tac Toe 的游戏 有 2 位玩家 其中一位是 X 其中一位是 O 您所要做的就是将您的符号 3 连成一排 而其他人不会阻挡您 游戏的 GUI 如下所示 Code from guizero import App
  • 在 ubuntu 中使用 headless chrome 打印 PDF

    我正在尝试使用 chrome headless 和以下命令行在 ubuntu 中打印 pdf google chrome headless disable gpu print to pdf gen2 pdf file home user D
  • Java 异常从资源 .wav 读取流

    我想我的代码没问题 我的 jar 文件里面的 wav 没问题 但是当我尝试使用 getResourceAsStream 加载它时 出现错误 这是我的错误 java io IOException mark reset not supporte
  • XML 中的未知属性警告

    AndroidManifest 和 XML 布局向我展示了Unknown attribute android 即使属性存在并且应用程序在设备上运行 也会发出警告 例子 Unknown attribute android maxSdkVers
  • 适用于 Java 的小型、简约且快速的 XML 库?

    有时我需要解析 XML 文件 并且仅解析 并且我不想通过手动执行此操作String indexOf 所以我的需要是使用可能最小且快速的 XML 解析库 不幸的是 我不知道类似的事情GSON 180kb 我已经导入了dom4j 但之后我遇到了
  • Angular2/JavaScript - 在(点击)上增加/减少 1

    我想在用户按下添加按钮时递增 递减 然后相应地更新金额值 我尝试过几次 但不幸的是我没有成功 这是代码 addToCart this amount 1 addItem this amount console log plus is this
  • 为什么我不能使用 Guid 作为泛型类型约束?

    我有如下通用方法 我想将 T 限制为仅 Guid 类型 如下所示 public static EntityFindApiResponse EntityFind
  • 在 Django 管理更改列表中,如何显示空格而不是默认的“(无)”?

    当数据库中的字段为空时 Django 在显示更改列表时插入 None 来保留空值的位置 虽然是描述性的 但当变更列表上有很多字段时 一切看起来都非常忙碌 而空白字段同样有帮助 但不会那么混乱 那么有什么方法可以更改 Django 用于表示更
  • 没有 SSH 访问权限的 Rsync

    首先 我不确定这是提出这个问题的最佳位置 所以如果它需要移动 那很酷 我有共享主机 没有 SSH 访问权限 在部署 rsyncing 方面我有哪些选择 我用 PHP 构建应用程序并使用 GIT 不确定这是否会改变事情 使用的 Rsync 旧
  • SBT 多项目中的传递依赖错误

    我正在构建一个 SBT 多项目项目 其中有common模块和logic模块 以及logic dependsOn common In common SparkSQL 2 2 1 org apache spark spark sql 2 2 1
  • WPF属性系统如何经济?

    据说WPF的设计者已经让它变得经济或者性能更高了 有人可以用一个例子来解释一下幕后发生的事情使 WPF 属性系统更加经济吗 您可能指的是依赖属性比普通 CLR 属性 便宜 这一事实 简单来说 依赖属性是使用稀疏数据结构实现的仅当在对象上设置