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

怎么用自己注册的域名做网站pageadmin wordpress

怎么用自己注册的域名做网站,pageadmin wordpress,外贸网站推,网站建设三要素如果你使用过 WPF/UWP 等 XAML UI 框架#xff0c;那么应该了解到附加属性的概念。那么没有依赖属性支持的时候如何做附加属性的功能呢#xff1f;你可能会想到弱引用。但这需要做一个弱引用字典#xff0c;要写的代码还是非常麻烦的。本文介绍 .NET 的 ConditionalWeakTabl… 如果你使用过 WPF/UWP 等 XAML UI 框架那么应该了解到附加属性的概念。那么没有依赖属性支持的时候如何做附加属性的功能呢你可能会想到弱引用。但这需要做一个弱引用字典要写的代码还是非常麻烦的。本文介绍 .NET 的 ConditionalWeakTableTKey,TValue 类型适用于 .NET Framework 4.0 以上和全部 .NET Core 的版本。这不是字典现成可用的弱引用字典即 ConditionalWeakTableTKey,TValue。然而实际上这个类的原本作用并不是当作字典使用如果你使用过 WPF/UWP 等 XAML UI 框架那么应该了解到附加属性的概念。这其实是 .NET 为我们提供的一种附加字段的机制。比如你有一个类class Foo{ // 请忽略这里公有字段带来的设计问题只是为了演示。 public string A;}我们希望为它增加一个字段 Barclass Foo{ public string A; public Bar Bar;}那么我们需要修改类 Foo 本身以实现这个效果但是这样就使得 Foo 耦合了 Bar从而破坏了内聚性/依赖倒置原则。典型的情况是 Foo 类表示一个人 Person它里面不应该包含一个 某行账号 这样的字段因为很多人是没有那家银行账号的。这个信息让那家银行存起来才是比较符合设计原则的设计。我们可以通过一个字典 DictionaryFoo, Bar 来存储所有 Foo 实例额外增加的 Bar 的值可以避免让 Foo 类中增加 Bar 字段从而获得更好的设计。但这样就引入了一个静态字典从而使得所有的 Foo 和 Bar 的实例无法得到释放。我们想当然希望拥有一个弱引用字典来解决问题。然而这是一个 X-Y 问题。实际上 .NET 中提供了 ConditionalWeakTableTKey,TValue 帮我们解决了最本质的问题——在部分场景下期望为 Foo 类添加一个字段。虽然它不是弱引用字典但能解决此类问题同时也能当作一个弱引用字典来使用仅此而已。你需要注意的是ConditionalWeakTableTKey,TValue 并不实现 IDictionaryTKey,TValue 接口只是里面有一些像 IDictionaryTKey, TValue 的方法可以当作字典使用也可以遍历取出剩下的所有值。验证ConditionalWeakTableTKey,TValue 中的所有 Key 和所有的 Value 都是弱引用的并且会在其 Key 被回收或者 Key 和 Value 都被回收之后自动从集合中消失。这意味着当你使用它来为一个类型附加一些字段或者属性的时候完全不用担心内存泄漏的问题。下面我写了一段代码用于验证其内存泄漏问题向 ConditionalWeakTableTKey,TValue 中添加了三个键值对将后两个的 key 设为 null进行垃圾回收。using System;using System.Linq;using System.Runtime.CompilerServices;namespace Walterlv.Demo.Weak{ class Program { public static void Main() { var key1 new Key(Key1); var key2 new Key(Key2); var key3 new Key(Key3); var table new ConditionalWeakTableKey, WalterlvValue { {key1, new WalterlvValue()}, {key2, new WalterlvValue()}, {key3, new WalterlvValue()} }; var weak2 new WeakReference(key2); key2 null; key3 null; GC.Collect(); Console.WriteLine($key1 {key1?.ToString() ?? null}key2 {key2?.ToString() ?? null}, weak2 {weak2.Target ?? null}key3 {key3?.ToString() ?? null}Table {{{string.Join(, , table.Select(x ${x.Key} {x.Value}))}}}); } } public class Key { private readonly string _name; public Key(string name) _name name; public override string ToString() _name; } public class WalterlvValue { public DateTime CreationTime DateTime.Now; public override string ToString() CreationTime.ToShortTimeString(); }}这段代码的运行结果如下图从中我们可以发现当某个 Key 被回收后ConditionalWeakTableTKey,TValue 中就没有那一项键值对了当 Key 的实例依然在的时候ConditionalWeakTableTKey,TValue 中的 Value 依然还会存在。另外我们这里在调查内存泄漏问题你需要在 Release 配置下执行此代码才能得到最符合预期的结果。参考资料ConditionalWeakTableTKey,TValue Class (System.Runtime.CompilerServices) - Microsoft DocsGood implementation of weak dictionary in .Net - Stack OverflowPresenting WeakDictionary[TKey, TValue] – Nick Guerrera’s blog.net - Understanding ConditionalWeakTable - Stack Overflow原文地址https://blog.walterlv.com/post/conditional-weak-table.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://wiki.neutronadmin.com/news/52657/

相关文章:

  • 公司网站开发制作公司网站建设销售是做什么的
  • 项目计划书范文案例优化模型有哪些
  • 网站推广公司兴田德润在哪里中国建筑app下载
  • led行业网站源码所有的购物平台大全
  • 建设大型网站设计公司app开发公司推荐
  • 六盘水南宁网站建设在哪买网站链接
  • 建个什么网站好如何后台修改网站联系人
  • 导购网站怎么做视频教学wordpress 当前文章所属分类
  • 哪个网站可以找设计师做设计师软件工程师证书报考要求
  • 企业网站优化公司哪家好网页设计岗位职责
  • 做暖暖视频免费观看免费网站用QQ群做网站排名
  • 网站搜索引擎友好性分析华文细黑做网站有版权吗
  • 建设部执业注册网站电子邮件无法发送wordpress
  • 深圳做网站 创同盟公司网络规划的重要性
  • 网站里的聊天怎么做汽车美容网站模板
  • oss可以做视频网站吗c 网站开发 书
  • 甘肃永靖建设住建局网站网站建设 采集
  • 网站开发文档是什么概念品牌宣传型网站建设方案
  • 镇江做网站seo做国际贸易用什么网站
  • 免费看电影的网站是什么什么是seo
  • 外贸网站的推广技巧有哪些wordpress分类图标
  • 网站建设工作室发展化妆品网站栏目策划
  • 天津响应式网站建设制作济南手机网站建设专业定制
  • 手机端网站建设方案html网页制作大作业范例
  • 技术支持 东莞网站建设网上注册公司在哪个平台注册
  • 红叶网站建设方案wordpress在线监测
  • 做网站公司怎么做百度官网首页
  • 网站的验证码是怎么做的温州开发网站公司
  • 网站直播用php怎么做钢丝高频退火设备网站建设
  • 南昌网站建设方案优化我想给网站网站做代理