lindexi

林德熙 - Windows 10 App Developer

林德熙

C# 将dll打包到程序中

本文告诉大家如何把 dll 打包到程序中。很多时候的 软件 在运行的时候需要包括很多 dll 或其他的文件,这样的软件在给其他小伙伴,就需要做一个压缩包,或者用安装软件。这样感觉不太好,所以本文告诉大家一个方法,把所有的 dll 放在一个文件,于是把自己的软件给小伙伴就只需要给他一个程序。

C# 字符串首字符大写

我找到一些把字符串首字符大写的方法。

C# 判断文件编码

我们的项目中会包含有很多文件,但是可能我们没有注意到的,我们的文件的编码不一定是utf-8,所以可能在别人电脑运行时出现乱码。最近在做一个项目,这个项目可以把我们的文件夹里的所有文本,判断他们是什么编码,如果不是用户规定的编码,那么就告诉用户,是否要把它规范为设置的编码。

C# await 高级用法

本文告诉大家 await 的高级用法,包括底层原理。

C# TextBlock 上标

我需要做一个函数,显示 $x^2$ ,但是看起来用 TextBlock 做的不好看。 我用 WPF 写的上标看起来不好看,但是最后有了一个简单方法让他好看。 本文告诉大家如何做一个好看的上标。

C# Find vs FirstOrDefault

本文告诉大家,在获得数组第一个元素时,使用哪个方法性能更高。

C# BBcode 转 Markdown

本文告诉大家一个简单的方法从 BBcode 转为 Markdown

C# 6.0 字符串 String Interpolation

本文主要:C# 6.0 新特性 String Interpolation,一些比较少知道的知识。 本文内容有:字符串新特性的一般使用、格式化字符串、保留小数点、判断字符串

C# 使用Emit深克隆

有人问,复制一个类所有属性到另一个类有多少方法?这也就是问深克隆有多少个方法,容易想的有三个。直接复制,反射复制,序列化复制。但是性能比较快的有表达式树复制 IL复制两个,本文主要讲最后一个

C# 代码占用的空间

是不是代码会占用空间,如果一个程序初始化需要 100M 的代码,那么在他初始化之后,这些代码就没有作用了,他会不会占空间?本文经过测试发现,代码也是会占空间。

C# dotnet 使用 OpenXml 解析 PPT 文件

在 2013 微软开源了 OpenXml 解析库,在微软的 PPTX 文档,使用的文档格式就是国际规范的 OpenXml 格式。这个格式有很多版本,详细请看百度。因为演示文稿使用的是 OpenXml 在 .NET 开发可以非常简单将 PowerPointer 文档进行解析,大概只需要两句话

C# 判断方法是否被子类重写

本文告诉大家如何通过反射判断某个方法是否被基类重写

C# dotnet 线程不安全的弱引用缓存

很多逻辑都会使用内存做缓存,这样可以提高运行效率。但是有一些逻辑很少会执行,但是如果有执行就是频繁调用。如我写了文本编辑器,在我打开文件的逻辑,将会不断调用正则判断逻辑,而平时编辑很少会调用。如果将这部分的正则逻辑缓存了,那么可以提升打开文件速度,但是在打开文件之后这部分就成为内存垃圾了。本文给大家一个弱引用缓存,也就是在频繁使用时从内存获取,在不使用时会被回收,这样可以提升性能也能减少内存使用

C# dotnet core 局域网组播方法

我在微软官网找到了用 C# 做 UDP 组播的方法,我优化一些逻辑,保留核心代码,然后加了一点封装

C# dotnet 获取整个局域网的 ip 地址

局域网可以使用的 IP 地址有很多,我写了一段代码用来枚举所有可以用的 ip 地址

C# 极限压缩 dotnet core 控制台发布文件

每次发布 dotnet core 应用都会觉得发布文件太大,而如果使用极限压缩,用 CoreRT 能让发布的控制台文件到 5KB 左右,不需要带框架就能在其他设备运行

.NET Standard

本文收藏我找到的博客,可以让大家快速知道什么是.NET Standard

C# 强转空会不会出现异常

有小伙伴问我强转 null 会不会出现异常,我告诉他,如果是引用类型那么不会,如果是值类型,那么会出现空异常

BAT 脚本判断当前系统是 x86 还是 x64 系统

本文告诉大家在写 BAT 脚本的时候,如何判断当前的系统是 32 位系统的还是 64 位系统

C# 自动翻页 PPT 测试脚本

本文告诉大家一个可以使用的 C# 脚本,可以用来自动打开 PPT 文件,然后不断执行翻页。每次翻页都截图。翻页之后自动关闭 PPT 再次打开

ASP.NET Core 连接 GitLab 与 MatterMost 打造 devops 工具

在现代化开发工具链里面就包含了自动化的通讯工具,而日志写代码我是推到 Gitlab 平台上,我今天听了郭锐大佬的分享之后,感觉我现在的团队的自动化做的远远不够。我在他的课程上学到的最重要一句话就是做工具不是从零到一最难,有很多非常厉害好用的工具最后都没用上的原因是没有加入到开发链条上。所以我用最简单的工具做实践,在 Gitlab 上的代码审查每次都需要自己手动将代码审查链接发给对应的审查者,这样的效率很低,于是我就打通了通讯工具和代码平台之间的联系,开始一步步打造适合自己团队的工具

C# 条件编译

有一部分代码只是用来调试使用,不期望在发布的时候执行。也有一些代码只是用来测试性能,也不期望在其他时候使用。在做源代码包的时候,我需要对不同的平台使用不同的代码。此时就可以用到条件编译符,在不同的条件下编译不同的代码

C# 如何写出一个不能被其他程序集继承的抽象类

我需要限定某个抽象类只能在我程序集类实现,而不支持其他程序集实现,也就是我需要一个不能被继承的抽象类

C# 在基类定义好方法让子类继承接口就能实现

在 C# 里面,接口的定义只需要类里面存在和接口声明相同的方法或属性就可以,而存在的方法或属性是在子类定义的还是基类里面定义的都无所谓。也就是在基类里面写好了方法,但不继承接口,等子类继承接口的时候就不需要子类实现方法。通过这样的方法可以在基类里面添加一些辅助方法,而这些方法默认不给子类开启,除非子类继承了接口

C# 从零开始写 SharpDx 应用 笔刷

本文告诉大家如何在 SharpDx 里面使用笔刷,包括纯色笔刷、渐变笔刷和图片笔刷

AutoHotKey 用打码的快捷键

本文告诉大家如何使用 AutoHotKey 将 - 键默认输入的时候是下划线,因为使用下划线在写代码的时候是用在私有字段,而 - 很少使用

C# 从零开始写 SharpDx 应用 绘制基础图形

本文告诉大家通过 SharpDx 画出简单的 2D 界面

C# 匹配可空变量

在 C# 7.0 的时候提供更好用的模式匹配方法,支持通过 is 直接转换对应的类,但是如果是尝试转换可空的对象,那么将会提示无法编译,或转换失败

C# 将 Begin 和 End 异步方法转 task 异步

在 .NET Framework 有两个不同的异步方法,一个是 Asynchronous Programming Model (APM) 另一个是 Task-based asynchronous pattern (TAP) 说 APM 和 TAP 估计大家都不认识。其实 APM 就是有成对的 Begin 和 End 方法的异步,而 TAP 就是使用 async 和 await 的异步

C# 如何给 ValueTuple 返回值添加注释

在 C# 7.0 可以在一个方法的返回,返回多个参数,通过 ValueTuple 的方法,但是和单个参数返回不同的是,如何对多个参数返回每个参数进行单独的注释?