Mac 出现 “is damaged and can’t be opened” 解决办法
今天在网上下载一个软件,运行时报 “xx is damaged and can’t be opened”, 没有打开的选项,只有 Cancel 和 Move to Trash,这里记录一下解决办法
今天在网上下载一个软件,运行时报 “xx is damaged and can’t be opened”, 没有打开的选项,只有 Cancel 和 Move to Trash,这里记录一下解决办法
最近在项目上需要实现一个把Excel的内容转成 Json的功能,使用了 Attribute + TypeConverter,Attribute 用于标记列与属性的对应关系,TypeConverter 用于处理特殊数据结构,易于维护,方便扩展
在项目上写UT时,代码里面有大量的protected属性,需要被mock掉,但是因为是protected,不能被外部赋值,因此找到了用dynamic加反射的形式实现一个包装类,能够像调用public成员一样点吧点吧调用private成员
依赖,或者用英语更准确,dependency,是程序设计中不同对象或方法之间所必不可少的,我们的代码就是由不同的方法不同的对象相互调用组成的,因此,对于依赖,我们要做到心里有数,依赖是如何产生的,依赖的强弱关系是怎样的。依赖的强弱是指依赖者对被依赖对象的依赖程度,即替换被依赖对象所花费的代价程度如何,依赖程度越强,替换掉被依赖对象的代价就越大,方法越底层,难度越大,灵活性越差。
最近在做一些代码分析的小程序,抓出代码里面符合特定规则的文件,把符合特征的代码文件和代码片段抓出来,输出成一个txt文件,方便统计和查找,为日后分析做准备,因为要遍历所有项目文件,所以需要程序依次访问每个文件夹下的所有文件,因为还有子文件夹,因此想到了用递归来遍历,这个实现没有涉及多线程,以后有机会再改成多线程吧,这里记录一下方法,用到了尾递归。
这两天在看.net core的in memory cache,这里记录一下用法,主要涉及MemoryCache的Get/Set/Expire/Flush。
这里总结一下在Mac上安装VsCode和Vim插件时遇到的一些坑,希望能帮助到遇到同样问题的人。
今天我们来聊一聊.net异步编程,.net 4.5为我们提供了两个新的关键字async 和 await,使我们能够借助TAP提供的一系列Async方法像同步编程一样来写异步代码,这篇文章里还会回顾一下之前异步编程的一些模式,比如EAP,APM,让我们体会一下async和await带来的便利。
这些一个个的零散的小点都是在日常工作中总结出来的,似乎没有哪一本编程书会讲这些,所以就总结出来放到这里,要记住你所做的一切决定,都是有代价的,或是性能,或是灵活性,没有最优解,你需要自己去权衡。
Attribute是C#的一种语言特性,用于为各种实体(class,field,property)附加一些说明性信息, 并且可以在运行时环境中检索这些信息(通过反射)。这篇文章介绍了如何去声明和使用一个attribute,并且介绍了反射的基本知识,以及如何运用反射来读取attribute的信息。