walterlv的专栏

热爱设计,不止是程序,更是艺术!

生成代码,从 <T> 到 <T1, T2, Tn> —— 自动生成多个类型的泛型

当你想写一个泛型 的类型的时候,是否想过两个泛型参数、三个泛型参数、四个泛型参数或更多泛型参数的版本如何编写呢?是一个个编写?类小还好,类大了就杯具! 事实上,在 Visual Studio 中生成代码的手段很多,本文采用最笨的方式生成,但效果也很明显——代码写得轻松写得爽! 我...

2018-01-31 13:37:17

阅读数:138

评论数:0

在操作系统重启后恢复应用程序的工作状态

Windows 10 创意者更新之后,默认开启了重启后恢复应用程序状态的功能。这是自 Vista 以来就提供的功能——Restart Manager。 应用程序实现这一功能只需要调用 RegisterApplicationRestart 即可。传入两个参数: 重启后使用的命令行参数(例如...

2018-01-30 08:45:57

阅读数:292

评论数:0

让一个 csproj 项目指定多个开发框架

可移植类库、共享项目、.NET Standard 项目都能够帮我们完成跨多个 .NET SDK 的单一项目开发,但它们的跨 SDK 开发都有些限制。现在,我们又有新的方式能够跨多个 .NET SDK 开发了,这就是使用新的 csproj 文件格式。 看看拥有多个开发框架的项目长什么样吧! ...

2018-01-30 08:45:27

阅读数:215

评论数:0

再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录

我在 feature 分支开发得多些,但总时不时被高优先级的 BUG 打断需要临时去 develop 分一个分支出来解 BUG。git 2.6 以上开始提供了 worktree 功能,可以解决这样的问题。 阅读本文将了解使用 git worktree 高效进行并行开发的方法。 git wo...

2018-01-30 08:44:27

阅读数:386

评论数:0

推荐近乎免费的调试神器——OzCode

当一只断点打在 Visual Studio 的代码编辑器中,程序命中断点的那一刻,调试才刚刚开始……这个时候忙碌的手在键盘和鼠标之间来回跳跃,试图抓住每一次单步执行带来的状态改变。 如果命中断点的那一刻多数我需要的状态都自动呈现,偶尔需要的状态能够快速定位,那该多好!于是,有了 OzCode……...

2018-01-30 08:43:56

阅读数:380

评论数:0

.NET Core 和 .NET Framework 中的 MEF2

MEF,Managed Extensibility Framework,现在已经发布了三个版本了,它们是 MEF 和 MEF2。 等等!3 去哪儿了?本文将教大家完成基于 MEF2 的开发。 MEF 和 MEF2 其实微软发布了四个版本的 MEF: 随着 .NET Frame...

2018-01-30 08:40:01

阅读数:313

评论数:0

将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件

写过 .NET Standard 类库或者 .NET Core 程序的你一定非常喜欢微软为他们新开发的项目文件(对于 C#,则是 csproj 文件)。这种文件非常简洁,组织一个庞大的项目也只需要聊聊二三十行;也非常易读,你可以轻易地修改其代码而不用经过过多的提前学习。当然,微软曾经尝试过用 pr...

2018-01-30 08:37:44

阅读数:157

评论数:0

.NET 中的轻量级线程安全

对线程安全有要求的代码中,通常会使用锁(lock)。自 .NET 诞生以来就有锁,然而从 .NET Framework 4.0 开始,又诞生了 6 个轻量级的线程安全方案:SpinLock, SpinWait, CountdownEvent, SemaphoreSlim, ManualResetE...

2018-01-30 08:32:50

阅读数:75

评论数:0

卡诺模型(KANO Model)

卡诺模型是一种研究影响顾客满意度因素的方法,在软件工程中可以用来辅助做需求分析和优化产品的质量。 作为一种方法,卡诺模型将某一种特性的存在程度作为横坐标,越大表示某个功能或特性做得越多,越小则表示做得越少。而纵坐标是用户满意度/认可程度,越高表示用户越喜欢,越低表示用户越讨厌此特性。 于是...

2018-01-30 08:32:11

阅读数:604

评论数:0

C#/.NET 匿名函数会捕获变量,并延长对象的生命周期

小伙伴在一次垃圾回收中,发现对象并没有被回收掉,而注释掉一句代码后它便能够回收。 这究竟是为什么? 不关心探索过程的就直接拉到最后看结论吧! 探索 测试代码是这样的: private void OnLoaded(object sender, RoutedEventArgs...

2018-01-30 08:30:42

阅读数:175

评论数:0

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