当前位置: 首页 > news >正文

程序的本质与类的说明

摘自《深入浅出WPF完整版》P132

程序的本质就是“数据+算法”,,这一本质一直没有改变一一类的作用只是把散落在程序中的变量和函数进行归档封装并控制对它们的访问而已。

被封装在类里的变量称为字段 (Fied)它表示的是类或实例的状态:被封装在类里的函数称为方法(Method)它表示类或实例的功能(即能做什么)。字段和方法构成了最原始的面向对象封装,这时候的面向对象概念中还不包含事件、属性等概念。

例如一个TextBox包含138个属性,每个属性要占用一个4字节的字段,有10K个TextBox就要占用5.26M内存。

属性是一个语法糖,包装了字段,并且不多占用内存。

在WPF中,微软将属性这个概念又向前推进了一步,推出了“依赖属性”(Dependency Object)这个新概念。简言之,依赖属性就是一种可以自己没有值,并能通过使用 Binding 从数据源得值(依赖在别人身上)的属性。拥有依赖属性的对象被称为“依赖对象”。与传统的 CLR 属性和面向对思想相比依赖属性有很多新颖之处,其中包括:

节省实例对内存的开销。

属性值可以通过 Binding依赖在其他对象上。

WPF 允许对象在被创建的时候并不包含用于存储数据的空间(即字段所占用的空间)、只保留在需要用到数据时能够获得默认值、借用其他对象数据或实时分配空间的能力一这种对象就称为依赖对象(Dependency Object),而它这种实时获取数据的能力则依靠依赖属性(Dependency Property)来实现。

WPF 开发中必须使用依赖对象作为依赖属性的宿主,使二者结合起来,才能形成完整的 Binding 目标被数据所驱动。

依赖对象的概念被 DependencyObject 类所实现,依赖属性的概念则由DependencyProperty类所实现。DependencyObject 具有 GetValue 和 SetValue 两个方法。

DependencyProperty等等以上依赖属性与派生,可以在CommunityToolkit.MVVM采用 ObservableObject替代

Wrapper容器

http://www.lryc.cn/news/13517.html

相关文章:

  • 单片机——显示方式
  • leetcode 1~10 学习经历
  • 代码质量与安全 | 一文了解高级驾驶辅助系统(ADAS)及其开发中需要遵循的标准
  • 2023年安徽省职业院校“磐云杯”网络安全竞赛任务书
  • 九龙证券|豪掷超6000万,10转3派6元,今年第二只高送转股出炉!
  • Java开发 - 数风流人物,还看“微服务”
  • Springboot 整合 分布式定时任务 XXL-JOB
  • 细谈JavaWeb中的Request和Response
  • lombok注解@Data使用在继承类上时出现警告解决方案
  • linux环境搭建私有gitlab仓库以及启动gitlab后出现卡顿处理办法
  • 2023爱分析· 云管理服务(MSP)市场厂商评估报告:华创方舟
  • 力扣-部门工资前三高的所有员工
  • 山东大学教授团畅谈ChatGPT革命座谈会,探讨ChatGPT发展趋势
  • 开发自己私有chatGPT(五)训练微调openai模型
  • 【数据结构】二叉树-堆实现及其堆的应用(堆排序topK问题)
  • ubuntu Repo 安装
  • JAVA:选择排序算法及其编写
  • 【Linux】——基础开发工具和vim编辑器的基本使用方法
  • R语言部分题解
  • 水文监测场景的数据通信规约解析和落地实践
  • 【数据结构】时间复杂度和空间复杂度
  • 从发现SQL注入到ssh连接
  • SAP ABAP
  • C/C++每日一练(20230219)
  • 【NestJS】模块
  • 隐私计算头条周刊(2.13-2.19)
  • 【STM32笔记】低功耗模式配置及避坑汇总
  • DFN: Dynamic Filter Networks-动态卷积网络
  • 面试官:你是怎样理解Fiber的
  • 【C++的OpenCV】第一课-opencv的介绍和安装(Linux环境下)