首页 > 编程语言 >【C#】一幅图解释Class和Delegate 的本质 - 一体双生

【C#】一幅图解释Class和Delegate 的本质 - 一体双生

时间:2022-09-29 18:56:40浏览次数:44  
标签:封装 C# Delegate 管理器 事件 Class 属性

本文纯粹是个人感悟:

一个事物=数据+行为,为了定义这两个。.net 派生出了Class和Delegate。Class:用于封装数据,Delegate :用于封装行为。

于是就有了.net系统的 属性和索引、委托和事件;wpf系统中依赖属性和附加属性、行为和命令。

这就解释了:为什么委托和类是同一个级别,都可以在命名空间中定义。

事件用于封装内部, 属性(索引) 用于封装内部 的数据。本质上事件和属性(索引)是一样的。

 为了防止数据引用和事件引用带来 的内存泄漏。wpf引入管理器的概念。

属性管理、弱事件管理器、命令管理器等。

标签:封装,C#,Delegate,管理器,事件,Class,属性
From: https://www.cnblogs.com/cdaniu/p/16742620.html

相关文章

  • scrapy
    scrapy项目搭建目录scrapy项目搭建中文文档一、scrapy运行原理二、工程搭建流程三、数据抓取步骤四、目录文件说明五、基础配置修改中文文档https://docs.pythontab.co......
  • SpringCloud学习 系列四、微服务中心 Eureka介绍及创建一个Eureka中心服务
    不得不先介绍一个概念1、CAP 定理(1)概念CAP定理指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可兼得。......
  • vue3 pc端页面全屏
    先看效果图: 附上代码: <template><el-button@click="hand">{{fullscreen?'取消全屏':'点击全屏'}}</el-button></template><script>import{ref}......
  • Belt Conveyor
    ProblemStatementWehaveagridwith$H$horizontalrowsand$W$verticalcolumns.$(i,j)$denotesthesquareatthe$i$-throwfromthetopand$j$-thcolu......
  • 跨域 jsonp/CROS
    jsonp是jsonwithpadding的缩写,它不属于Ajax请求,但它可以模拟Ajax请求。封装jsonp 文件functionjsonp(options){//动态创建script标签varscri......
  • Django InspectDB 缺少mysql/mariadb的注释问题。
    我的是3.13.1。修改2处文件。1.django\core\management\commands\inspectdb.py2.django\db\backends\mysql\introspection.py1.inspectdb.py@@-213,6+213,8@@clas......
  • SARscape5.6.2形变结果分类工具介绍
    SARscape5.6.2版本干涉叠加模块新增时序分类工具,可对时序InSAR进行高级后处理和分析。该工具通过现象特征和参数分析对位移时间序列进行自动分类。可使用外部气象数据(雨、......
  • Iroha and Haiku (New ABC Edition)
    ProblemStatementThereisasequence$A=(A_0,\ldots,A_{N-1})$oflength$N$.Determineifthereexistsatupleofintegers$(x,y,z,w)$thatsatisfiesalloft......
  • C++ 调用python方法
    主流方法将python程序编程文本形式的动态链接库,在c/c++程序中调用其中定义的函数。本质上是在c++中启动了一个python解释器,由解释器对python相关的代码进行执行,执行......
  • spuid和ccproxy代理软件使用
    工具说明:spuid端口转发工具配置文件如下#允许所有ip访问http_accessallowall#默认开放代理的端口http_port3128ccproxy网络代理工具可以......