walterlv的专栏

欢迎访问 https://walterlv.com/ 热爱设计,不止是程序,更是艺术!

排序:
默认
按更新时间
按访问量

预编译框架,开发高性能应用 - 课程 - 微软技术暨生态大会 2018

微软技术暨生态大会(Tech Summit),2018 年在上海世博中心召开。这是最后一次的 Tech Summit 了;明年开始,中国大陆地区就要和其他国家和地区一样,进行全球 Ignite Tour 了。 我也有幸成为分会场讲师团队的一员,课程是《预编译框架 - 开发高性能应用》。内容就是我博...

2018-10-15 08:45:47

阅读数:59

评论数:0

UWP 轻量级样式定义(Lightweight Styling)

在 UWP 中,可以通过给空间直接设置属性或在 Style 中设置属性来定制空间的样式;不过这样的样式定义十分有限,比如按钮按下时的样式就没法儿设置。当然可以通过修改 Template 来设置控件的样式,然而 UWP 中控件的样式代码实在是太多太复杂了,还不容易从 Blend 中复制了大量代码出来...

2018-09-26 21:15:05

阅读数:49

评论数:0

C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载!

?? 操作符叫做 null-coalescing operator,即 null 合并运算符。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。 在微软的官方 C# 文档中,此操作符被定义为不可重载。不过我们有方法可以间接实现这样的重载。 本文内容运算符重载编写 ...

2018-09-26 21:12:37

阅读数:50

评论数:0

分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer )

今年五月的 Build 大会上,微软说 .NET Core 3.0 将带来 WPF / Windows Forms 这些桌面应用的支持。当然,是通过 Windows 兼容包(Windows Compatibility Pack)实现的。为了提前检查你的程序是否能在未来跑在 .NET Core 3....

2018-09-26 21:11:18

阅读数:219

评论数:0

.NET 命令行参数包含应用程序路径吗?

如果你关注过命令行参数,也许发现有时你会在命令行参数的第一个参数中中看到应用程序的路径,有时又不会。那么什么情况下有路径呢? 其实是否有路径只是取决于获取命令行参数的时候用的是什么方法。而这是 Windows 操作系统的机制,与具体的运行环境无关。 本文内容测试程序解释总结 测试程序 考虑下面这...

2018-09-26 21:08:38

阅读数:47

评论数:0

WPF 多线程 UI:设计一个异步加载 UI 的容器

你做 .NET 开发的时候,一定用过 DllImport 这个特性吧,这货是用于 P/Invoke (Platform Invoke, 平台调用) 的。这种 DllImport 标记的方法都带有一个 extern 关键字。 那么有没有可能我们自己写一个自己的 extern 方法呢?答案是可以的。本...

2018-09-26 21:03:32

阅读数:52

评论数:0

.NET/C# 使用反射调用含 ref 或 out 参数的方法

使用反射,我们可以很容易地在运行时调用一些编译时无法确定的属性、方法等。然而,如果方法的参数中包含 ref 或 out 关键字的时候,又该怎么调用呢? 本文将介绍如何反射调用含 ref 或 out 关键字的方法。 比如我们有这样的类型: public class Walterlv { p...

2018-09-26 20:59:36

阅读数:50

评论数:0

.NET/C# 判断某个类是否是泛型类型或泛型接口的子类型

.NET 中提供了很多判断某个类型或实例是某个类的子类或某个接口的实现类的方法,然而这事情一旦牵扯到泛型就没那么省心了。 本文将提供判断泛型接口实现或泛型类型子类的方法。 本文内容.NET 中没有自带的方法我们需要自己编写方法 .NET 中没有自带的方法 对于实例,.NET 中提供了这些方法来判...

2018-09-26 20:58:45

阅读数:74

评论数:0

.NET/C# 使用反射注册事件

使用反射,我们可以很容易地在运行时调用一些编译时无法确定的属性、方法等。那么如何注册事件呢? 本文将介绍如何使用反射注册事件。 这里写自定义目录标题不使用反射使用反射安全地使用反射参考资料 不使用反射 例如,我们希望反射的类型是这样的: public class Walterlv { p...

2018-09-26 20:57:37

阅读数:56

评论数:0

都是用 DllImport?有没有考虑过自己写一个 extern 方法?

你做 .NET 开发的时候,一定用过 DllImport 这个特性吧,这货是用于 P/Invoke (Platform Invoke, 平台调用) 的。这种 DllImport 标记的方法都带有一个 extern 关键字。 那么有没有可能我们自己写一个自己的 extern 方法呢?答案是可以的。...

2018-09-09 10:10:07

阅读数:123

评论数:0

好的框架需要好的 API 设计 —— API 设计的六个原则

说到框架设计,打心底都会觉得很大很宽泛,而 API 设计是框架设计中的重要组成部分。相比于有很多大佬都认可的面向对象的六大原则、23 种常见的设计模式来说,API 设计确实缺少行业公认的原则或者说设计范式。 不过,没有公认不代表没有。无论是对外提供类库还是提供 url 形式的 API,为了使用者...

2018-09-07 08:57:52

阅读数:241

评论数:2

常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/微软拼音)

几个主流的输入法输入 rq 或者 sj 都可以得到预定义格式的日期或者时间。然而他们都是预定义的格式;当我们需要一些其他格式的时候该怎么做呢? 本文将介绍几个常用输入法自定义时间和日期格式的方法。 主流输入法的日期格式一般是这样的: ▲ 微软拼音 ▲ 搜狗拼音 ▲ QQ ...

2018-08-27 22:47:59

阅读数:236

评论数:0

.NET 中 GetProcess 相关方法的性能

.NET 的 Process 类中提供了查找进程的若干方法,其中部分方法还比较消耗性能。如果你试图优化查找进程相关方法的性能,可能本文分享的一些耗时数据可以作为参考。 性能比较 Process 类中提供了四种查询进程的方法: GetProcesses 获取当前计算机或远程计算...

2018-08-27 22:14:17

阅读数:146

评论数:0

.NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)

长文预警!!! UWP 程序有 .NET Native 可以将程序集编译为本机代码,逆向的难度会大很多;而基于 .NET Framework 和 .NET Core 的程序却没有 .NET Native 的支持。虽然有 Ngen.exe 可以编译为本机代码,但那只是在用户计算机上编译完后放入了缓...

2018-08-27 22:09:51

阅读数:4935

评论数:18

通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇)

在 .NET Framework 4.7 以前,WPF 程序的触摸处理是基于操作系统组件但又自成一套的,这其实也为其各种各样的触摸失效问题埋下了伏笔。再加上它出现得比较早,触摸失效问题也变得更加难以解决。即便是 .NET Framework 4.7 以后也需要开发者手动开启 Pointer 消息,...

2018-08-27 22:02:09

阅读数:177

评论数:2

C#/.NET 读取或修改文件的创建时间和修改时间

手工在博客中添加 Front Matter 文件头可是个相当费事儿的做法,这种事情就应该自动完成。 .NET 中提供了非常方便的修改文件创建时间的方法,使用这种方法,能够帮助自动完成一部分文件头的编写或者更新。 相关类型 .NET 中提供了两个不同的设置创建和修改时间的入口: ...

2018-08-27 21:58:20

阅读数:288

评论数:0

基于 task 为 VSCode 添加自定义的外部命令

我们有很多全局的工具能在各处使用命令行调用,针对某个仓库特定的命令可以放到仓库中。不过,如果能够直接为顺手的文本编辑器添加自定义的外部命令,那么执行命令只需要简单的快捷键即可,不需要再手工敲了。 写一个外部命令的调用 由于是调用外部工具,所以工具本身用什么语言写已经不重要的了,只要...

2018-08-27 21:57:00

阅读数:231

评论数:0

Win32 程序在启动时激活前一个启动程序的窗口

UWP 程序天生单实例。当然,新 API (10.0.17134)开始也提供了多实例功能。不过,传统 Win32 程序可就要自己来控制单实例了。 本文介绍简单的几个 Win32 方法调用,使 Win32 程序也支持单实例。 激活之前进程的窗口 我们可以通过进程名称找到此前已经启动...

2018-08-27 21:55:59

阅读数:127

评论数:0

在 GitHub 公开仓库中隐藏自己的私人邮箱地址

GitHub 重点在开方源代码,其本身还是非常注重隐私的。这一点与面向企业的 GitLab 很不一样。 不过,你依然可能在 GitHub 上泄露隐私信息,例如企业内部所用的电子邮箱。 GitHub 对个人隐私的尊重 git 的设定,开发者需要设置自己的邮箱: ▲ git 的邮箱...

2018-08-27 21:55:15

阅读数:302

评论数:0

让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制

各种操作系统的控制台都支持 ANSI 转义序列(ANSI Escape Code)。使用转义序列,可以对控制台进行很多额外的定制,例如修改颜色、修改标题栏,将文字添加下划线等。 当然,.NET 已经帮助我们封装了很大的一部分功能了,我们重点可以放在 .NET 没有封装的那部分上。 ...

2018-08-27 21:52:06

阅读数:126

评论数:0

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