随笔分类 -  c#

摘要:我最近在造一个比 Excel 差得多的表格控件,其中一个需求是属性的继承。大家都知道,表格里面有单元格,单元格里面允许放文本,文本可以放多段文本。本文的主角就是文本段落的样式属性,包括文本字体字号颜色等等属性。文本段落的属性,如果没有特别设置,将使用单元格里面的文本样式属性。而如果单元格里面,没有特别指定此单元格使用特殊的文本样式,将会继承使用当前所在的行的文本样式。如果当前行没有特殊指定文本样式属性,那么将会使用文档的默认样式。文档默认样式将会根据是否有特殊指定而采用主题样式 如此复杂的层层继承逻辑,如果每个属性都需要自己一层层去寻找,那代码量将会特别多。维护起来就想吃桌子 阅读全文
posted @ 2021-11-09 19:28 lindexi 阅读(240) 评论(2) 推荐(0) 编辑
摘要:在 dotnet 里面,有很多框架都喜欢扫描程序集进行初始化逻辑,在扫描程序集的所有类型的时候,相当于碰到所有类型。而某个类型的静态构造函数将会在某个类型被使用之前被 CLR 调用,那么扫描类型是否会触发此类型的静态构造函数的调用?答案是不会的 阅读全文
posted @ 2021-10-19 08:47 lindexi 阅读(361) 评论(0) 推荐(0) 编辑
摘要:利用哈希的其中一个思想,相同的对象的哈希值相同,可以用来提升一些大对象集合的进行对象相等判断的性能。大对象的相等判断指的是有某些类型的相等判断需要用到对象的很多属性或字段进行参与判断逻辑才能判断两个对象是否相等,当这些大对象存放在集合里面,此时进行大量的相等判断将会因为需要有大量的属性或字段的判断而降低性能。本文告诉大家如何使用此哈希的思想提升判断的性能 阅读全文
posted @ 2021-10-15 08:46 lindexi 阅读(268) 评论(0) 推荐(1) 编辑
摘要:本文告诉大家如何入门开始开发一个基于 mono 组织开源的 XWT 跨平台客户端 UI 框架的应用,本文的 xwt 是在 GitHub 上完全开源的,基于 MIT 协议的,底层采用 GTK# 的 UI 框架 阅读全文
posted @ 2021-08-10 09:01 lindexi 阅读(695) 评论(0) 推荐(1) 编辑
摘要:假设在某个类型的构造函数里面抛出了异常,那么这个对象的析构函数是否会执行 阅读全文
posted @ 2021-06-17 21:04 lindexi 阅读(412) 评论(1) 推荐(1) 编辑
摘要:如果我在一个方法的 finally 里面抛出异常,而在 try 里面也抛出,那在上层拿到的是什么 阅读全文
posted @ 2021-06-17 21:01 lindexi 阅读(204) 评论(0) 推荐(1) 编辑
摘要:本文告诉大家如何在 UOS 国产系统上开始使用 MonoDevelop 开发,通过创建 GTK# 应用,进入界面开发的第一步 阅读全文
posted @ 2020-09-05 13:20 lindexi 阅读(724) 评论(4) 推荐(1) 编辑
摘要:本文告诉大家如何在 UOS 上安装 MonoDevelop 开发工具。本文使用的 UOS 是 UOS 20 x64 版本,这个系统版本是基于 debian 10 的,默认的 MonoDevelop 开发工具是没有提供 UOS 版本,但是有提供 debian 10 版本 阅读全文
posted @ 2020-09-05 13:15 lindexi 阅读(819) 评论(0) 推荐(2) 编辑
摘要:在前面几篇博客告诉大家如何部署 GTK 应用,此时的应用是特别弱的,大概只是到拖控件级。尽管和 WinForms 一样也能写出特别强大的应用,但是为了提升一点开发效率,咱开始使用 xaml 神器写界面。本文告诉大家如何在 UOS 国产系统上,通过 Xamarin.Forms 使用 XAML 写界面逻辑,构建出 GTK 应用 阅读全文
posted @ 2020-09-05 13:14 lindexi 阅读(669) 评论(0) 推荐(2) 编辑
摘要:现在 dotnet 属于 dotnet 基金会,所有开发者都可以向 dotnet 贡献代码和参与 .NET 的设计,参与路线决策。本文来告诉大家一些基本玩法,带着小伙伴们入坑 阅读全文
posted @ 2020-06-16 08:33 lindexi 阅读(581) 评论(0) 推荐(0) 编辑
摘要:大部分在 Windows 下的脚本都是使用 bat 或 cmd 写的,这部分的脚本对我来说可读性不好。这个可读性也是很主观的,对我来说用 C# 写脚本的可读性很强,但是换个小伙伴就不是了。在 .NET Core 下的 C# 可以通过 dotnet run 运行代码起来,此时特别适合用来写脚本 阅读全文
posted @ 2020-04-29 08:25 lindexi 阅读(668) 评论(0) 推荐(0) 编辑
摘要:在 WPF 中可以通过 StylusPlugIn 的方式快速从触摸线程拿到触摸数据,而 WinForms 没有这个机制,但是可以通过 Microsoft.Ink 组件和 WPF 相同在 RealTimeStylus 服务拿到触摸点 阅读全文
posted @ 2020-04-21 11:16 lindexi 阅读(691) 评论(0) 推荐(0) 编辑
摘要:默认的 WPF 的字体大小的单位是像素,如果想要将字体大小使用 pt 点表示,写在 xaml 里面是直接添加 pt 后缀。但是此时如果在静态资源尝试定义的时候写上了 pt 将会在运行的时候提示无法转换 阅读全文
posted @ 2020-04-17 08:51 lindexi 阅读(1298) 评论(8) 推荐(4) 编辑
摘要:本文主要是试验在顺序进入等待 SemaphoreSlim 的任务是否会按照顺序经过锁执行 阅读全文
posted @ 2020-04-15 09:13 lindexi 阅读(710) 评论(0) 推荐(0) 编辑
摘要:本文告诉大家一个有趣的动画,在鼠标点击的时候,在点击所在的点显示一个圆圈,然后这个圆圈做动画变大,但是颜色变淡的效果。本文的控件可以让大家将对应的容器放在自己应用里面就能实现这个效果 这个效果特别简单,属于入门级的动画,代码也很少,请看效果 本文的控件只是一个简单的 Canvas 控件,可以将本文的 阅读全文
posted @ 2020-04-14 14:24 lindexi 阅读(940) 评论(8) 推荐(3) 编辑
摘要:本文告诉大家一些 ValueTuple 的原理,避免在使用出现和期望不相同的值。ValueTuple 是 C# 7 的语法糖,如果使用的 .net Framework 是 4.7 以前,那么需要使用 Nuget 安装 System.ValueTuple 阅读全文
posted @ 2018-05-30 08:58 lindexi 阅读(3453) 评论(0) 推荐(1) 编辑
摘要:本文告诉大家如何使用 Marshal 做出可以快速释放内存的大数组。 最近在做 3D ,需要不断申请一段大内存数组,然后就释放他,但是 C# 对于大内存不是立刻释放,所以就存在一定的性能问题。 在博客园看到了一位大神使用 Marshal 做出快速申请的大数组,于是我就学他的方法来弄一个。本文告诉大家这个类是如何使用 阅读全文
posted @ 2018-05-30 08:53 lindexi 阅读(1124) 评论(3) 推荐(1) 编辑
摘要:今天看到一个库是把金额转中文大写,看起来很容易,所以我就自己写了 阅读全文
posted @ 2018-04-29 09:50 lindexi 阅读(259) 评论(0) 推荐(0) 编辑
摘要:在 Windows 有一些字符是不能作为文件名,尝试重命名一个文件,输入`/` 就可以看到windows 提示的不能作为文件名的字符 阅读全文
posted @ 2018-04-29 09:49 lindexi 阅读(1709) 评论(0) 推荐(0) 编辑
摘要:本文告诉大家如何使用dot net core 和其他进程进行通信 阅读全文
posted @ 2018-04-20 08:52 lindexi 阅读(706) 评论(0) 推荐(0) 编辑