自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

转载 c#——树的深度,广度优先遍历与迭代器(IEnumerable<T>)的结合使用

树是开发工作中比较常见的一种数据结构,园子里有很多文章介绍了对它的遍历,此处我们结合c#的迭代器机制,创建两种树的遍历方法。static IEnumerable<T> DepthFirstTravel<T>(T root,Func<T,IEnumerable<T>> getChildren) { ...

2019-06-28 16:27:00 255

转载 使用配置为.Net 程序集创建多个版本的发布

  在某些情况下,我们需要将程序发布在由于各种差异所构成的不同场景下,这些差异可能来自于面向的框架的,第三方SDK,系统(x86,x64)的版本等,幸运的是,得益于JIT的特性,在CLR版本一致,且类和方法的参数,数量等关键签名信息未发生变化时,.Net程序具备一定的向下兼容性,通俗地讲,即是编译后的程序集能够正常使用该程序集在编译前所引用的程序集的更高版本的能力,当然,须保证被引用的程...

2019-06-18 17:50:00 467

转载 c# readonly的"奥秘"

本文将探索c# readonly关键字在编译以及运行时的一些关系,通过讨论类中的值类型(即结构)字段的可修改性入手。我们先编写一个极其简单的结构类型: public struct StEntity { public int Val { get { _val++; r...

2019-03-20 19:43:00 174

转载 C# 使用 Emit动态生成函数,附带与反射,硬编码的测试结果。

  因为托管.Net 程序代码最终被编译的结果为CIL(Common Intermediate Language,直译为公共中间语言,在很多场景下也称MSIL),在运行时,经过CLR加载执行类型可用性,安全性检查,并最终由JIT根据本地CPU的指令集生成对应的本地代码以执行,所以理论而言,我们可以使用CIL构建最终生成的程序集,当然,前提是使用者必须懂得一些CIL,好在相对于汇编语言...

2019-02-08 21:39:00 777

转载 C#解析ntfs下的$usnjrnl($J)文件

园子里面已经有文章介绍如何在windows下如何借助windows提供的原生API读取USN日志,本随笔介绍的是解析现有的$usnjrnl文件,得到其中的内容。经过分析msdn对usn记录的描述(传送门https://docs.microsoft.com/en-us/windows/desktop/api/winioctl/ns-winioctl-usn_journal_data_v...

2018-08-02 17:20:00 932

转载 关于平台调用(P/Invoke)的回调特性在面向对象的应用

关于平台调用的相关知识在园子里面各位大牛已经总结得相当到位,大多博客描述的内容描述了如何使用托管程序调用非托管程序集(主要是由C写的dll),少量则涉及到了非托管程序集调用托管程序的回调内容。事实上,合理使用平台调用的托管-非托管的回调特性,可以帮助我们使用非托管程序集时,更能遵循关注分离的原则,编写出具有高度抽象,低耦合的代码,本博客的目的便是根据前人的经验,摸索出出自己的一种更为...

2018-07-18 12:52:00 169

转载 关于Prism Mef程序启动程序Shell(主窗体)被导出两次的原因分析及解决办法。

关于Prism.Mef方式启动一个wpf程序的文章已经相当多,形式大致相同。我要说明的问题是默认的Prism.Mef的MefBootStrapper启动方式下(如果你使用了网上提供的标准模板代码),导致主窗体在MefBootStrapper->Container中存在了两个引用(事实上,这两个引用指向的是同一个实例)的原因。因为在程序运行的时候,程序的其它组件(比如对话框服...

2018-04-18 10:48:00 271

转载 关于c#互操作调用C Dll多级指针一个想法。

在c#调用c dll互操作中,c dll中的函数可能会有些多级指针作为参数或者返回值的情况,本文的目的就是提供一种安全情况下,.net对于C DLL的调用想法,之所以叫想法,是因为这个方法还是有些不完美的地方,哪里不完美,将在文章末尾为大家说明。首先,关于.net(C#)如何调用c dll的基本方法,详见此文。http://my.oschina.net/bubifengy...

2016-07-27 16:51:00 129

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除