自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

walterlv - 吕毅

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

原创 git 合并策略

不清楚 git 冲突的表示方法,不了解 git 的合并原理,不知道 git 解冲突的多种策略。即便如此,大多数人依然可以正常使用 git 完成合并、拉取操作,并且解一些冲突。这得益于 git 默认情况下的合并方式可以处理大多数情况下的正常合并。 然而,你是否遭遇 git 自动合并炸掉的情况?命名提...

2019-02-24 15:56:13

阅读数 2403

评论数 0

原创 git 的合并原理(递归三路合并算法)

如果 git 只是一行行比较,然后把不同的行报成冲突,那么你在合并的时候可能会遇到大量的冲突;这显然不是一个好的版本管理工具。 本文介绍 git 合并分支的原理。 本文内容git 的冲突表示三路合并递归三路合并快进式合并参考资料 git 的冲突表示 例如我们有这样的三个提交 a、b、c。a、b ...

2019-02-24 15:55:36

阅读数 698

评论数 0

原创 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了

如果你写了一个 MarkupExtension 在 XAML 当中使用,你会发现你在 MarkupExtension 中定时的属性是无法使用 XAML 绑定的,因为 MarkupExtension 不是一个 DependencyObject。 本文将给出解决方案,让你能够在任意的类型中写出支持 X...

2019-02-24 15:53:20

阅读数 135

评论数 0

原创 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件

一个不小心,我的 SSD 又满了。到底是谁占用了那么多的空间!如果你是 ReSharper 的重度用户,那么可能你的调查结果会直指 JetBrains ReSharper。 本文将告诉你如何安全地删除这些文件来释放你的 C 盘空间,然后在 ReSharper 中设置其他的缓存目录。 本文内容消失...

2019-02-24 15:51:20

阅读数 555

评论数 0

原创 WPF 支持的多线程 UI 并不是线程安全的

WPF 支持创建多个 UI 线程,跨窗口的或者窗口内的都是可以的;但是这个过程并不是线程安全的。 你有极低的概率会遇到 WPF 多线程 UI 的线程安全问题,说直接点就是崩溃。本文将讲述其线程安全问题。 此问题现已报告给微软:Creating multi-thread UI has a low p...

2019-02-24 15:48:52

阅读数 164

评论数 0

原创 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试

在 WPF 开发时,有 Snoop 的帮助,UI 的调试将变得非常轻松。使用 Snoop,能轻松地查看 WPF 中控件的可视化树以及每一个 Visual 节点的各种属性,或者查看数据上下文,或者监听查看事件的引发。 不过,更强大的是支持使用 PowerShell 脚本。这使得它即便 UI 没有给你...

2019-02-24 15:46:50

阅读数 157

评论数 0

原创 使用 Xamarin 在 iOS 真机上部署应用进行调试

虽然 Xamarin 可以在 Windows 操作系统上编写和调试,但如果开发 iOS 应用,那么我们依然需要一台安装有 XCode 和 Visual Studio for Mac 的 Mac 电脑。做真机部署不是像平时使用太阳系第一 IDE Visual Studio 那样方便。 所以本文需要介...

2019-02-24 15:40:55

阅读数 544

评论数 0

原创 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例

我们知道,在编译期间相同的字符串,在运行期间就会是相同的字符串实例。然而,如果编译期间存在字符串的运算,那么在运行期间是否是同一个实例呢? 只要编译期间能够完全确定的字符串,就会是同一个实例。 字符串在编译期间能确定的运算包括: A + B 即字符串的拼接 $"{A}&...

2019-02-24 15:38:42

阅读数 113

评论数 0

原创 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题

本文收集整理使用 Xamarin 开发 iOS 应用时可能会遇到的各种问题。由于这是整理类的,在 CSDN 只会偶尔更新,所以可能需要去我的主站阅读更全的版本:https://walterlv.com/post/tips-for-developing-xamarin-ios-app.html。 ...

2019-02-24 15:36:05

阅读数 390

评论数 0

原创 使用 Xamarin 开发 iOS 键盘扩展(含网络访问)

作为一位 .NET 技术的死忠,开发 iOS 应用当然要使用 Xamarin 啦! 本文用我的阅读的文档和实践为素材,介绍如何使用 Xamarin 开发一个 iOS 的键盘扩展。 你可以在 Walterlv.CloudKeyboard 仓库中获得本文所述的全部源代码。 本文内容搭建环境你需要了解...

2019-02-24 15:32:41

阅读数 196

评论数 0

原创 如何在命令行中监听用户输入文本的改变?

这真是一个诡异的需求。为什么我需要在命令行中得知用户输入文字的改变啊!实际上我希望实现的是:在命令行中输入一段文字,然后不断地将这段文字发往其他地方。 本文将介绍如何监听用户在命令行中输入文本的改变。 在命令行中输入有三种不同的方法: Console.Read() 用户可以一直输入,在用户输...

2019-02-01 09:34:26

阅读数 103

评论数 0

原创 CentOS 的终端中如何搜索文件

CentOS 中搜索文件可以使用 find 命令。 如果需要在当前文件夹中搜索文件,那么可以使用命令: ~$ find -name filename 其中 filename 是你需要找的文件或文件夹的名称。我们没有指定搜索文件的路径,默认是当前文件夹。 如果你希望在所有文件夹中查找,那么可以使...

2019-02-01 09:33:08

阅读数 321

评论数 0

原创 C# 永远不会返回的方法真的不会返回

一般情况下,如果一个方法声明了返回值,但是实际上在编写代码的时候没有返回,那么这个时候会出现编译错误。 然而,如果方法内部出现了永远也不会退出的死循环,那么这个时候就不会出现编译错误。 请看下面这一段代码,RunAndNeverReturns 方法声明了返回值 int 但实际上方法内部没有返回。...

2019-02-01 09:32:26

阅读数 176

评论数 0

原创 不使用 U 盘等任何工具全新安装 Windows 操作系统

安装 Windows 有非常多种方法,现在我们要解决的问题是: 手头没有量产的 U 盘,或者懒得花时间去用 iso 文件量产 U 盘; 不想在 Windows 现有系统下安装(可能是为了全新安装,也可能是为了跳过安装序列号/产品密钥) 于是本文教你如何一步一步在 Windows RE 环境下安...

2019-02-01 09:31:44

阅读数 773

评论数 0

原创 C#/.NET 如何确认一个路径是否是合法的文件路径

很多方法要求传入一个字符串作为文件名或者文件路径,不过方法在实际执行到使用文件名的时候才会真正使用到这个文件名;于是这这种时候才会因为各种各样的异常发现文件名或者文件路径是不合法的。 有没有方法能够提前验证文件名或者文件路径是否是合法的路径呢? 这是一个不幸的结论 —— 没有! 实际上由我们自己...

2019-02-01 09:26:58

阅读数 723

评论数 0

原创 让 MSBuild Target 支持 Clean

我们有时候会使用解决方案的清理(Clean)功能来解决一些项目编译过程中非常诡异的问题。这通常是一些 Target 生成了一些错误的中间文件,但又不知道到底是哪里错了。 我们自己编写 Target 的时候,也可能会遇到这样的问题,所以让我们自己的 Target 也能支持 Clean 可以在遇到诡异...

2019-02-01 09:25:53

阅读数 140

评论数 0

原创 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径

在项目编译成 dll 之前,如何分析项目的所有依赖呢?可以在在项目的 Target 中去收集项目的依赖。 本文将说明如何在 Target 中收集项目依赖的所有 dll 的文件路径。 本文内容编写 Target以上 Target 的输出Reference 的输出ReferencePath 的输出解...

2019-02-01 09:25:16

阅读数 236

评论数 0

原创 C# 中委托实例的命名规则

我们知道一个类中的属性应该用名词或名词性短语,方法用动词或动宾短语;但是委托的实例却似乎有一些游离。因为在 .NET 中委托代表的是一个动作,既可以把它看作是名词,也可以看作是动词。在用法上,既可以像属性和变量一样被各种传递,也可以像一个方法一样被调用。 那么委托实例的命名,应该遵循属性和变量的命...

2019-02-01 09:23:59

阅读数 336

评论数 0

原创 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)

如果你试图通过 GetHashCode 得到的一个哈希值来避免冲突,你可能要失望了。因为实际上 GetHashCode 得到的只是一个 Int32 的结果,而 Int32 只有 32 个 bit。 32 个 bit 的哈希,有多大概率是相同的呢?本文将计算其概率值。 对于 GetHashCode...

2019-02-01 09:23:21

阅读数 305

评论数 0

原创 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程

MSBuild 的编译过程提供了一些可以被重写的 Target,通过重写这些 Target 可以扩展 MSBuild 的编译过程。 本文内容重写预定义的 Target`BeforeCompile`, `AfterCompile``BeforeBuild`, `AfterBuild``Before...

2019-02-01 09:20:59

阅读数 135

评论数 0

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