C# RabbitMQ的使用
本文目的如题。
安装
先说一下RabbitMQ的安装,建议使用Docker镜像安装,Docker安装的好处是不管Windows系统还是Linux,安装步骤少,安装方法相同,不容易出错。使用下面的命令就可以:
docker run -d --hostname myRabbit --name rabbitmq3.9.11 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin RABBITMQ_ ...
[C# Expression] 之动态创建表达式
上一篇中说到了 Expression 的一些概念性东西,其实也是为了这一篇做知识准备。为了实现 EFCore 的多条件、连表查询,简化查询代码编写,也就有了这篇文章。
在一些管理后台中,对数据进行多条件查询是一件很普遍的事情,比如在用户列表需要实现可以对 "用户名"、"手机号"、"账户是否冻结" 等等一系列的条件 ...
【转载】C#之异步
C#之异步
C#之异步
在计算机中,一个线程就是一系列的命令,一个工作单元。操作系统可以管理多个线程,给每个线程分配cpu执行的时间片,然后切换不同的线程在这个cpu上执行。这种单核的处理器一次只能做一件事,不能同时做两件以上的事情,只是通过时间的分配来实现多个线程的执行。但是在多核处理器上,可以实 ...
C#汉字转汉语拼音
一、使用PinYinConverterCore获取汉语拼音
最新在做一个搜索组件,需要使用汉语拼音的首字母查询出符合条件的物品名称,由于汉字存在多音字,所以自己写查询组件不太现实,因此,我们使用微软提供的CHSPinYinConv,CHSPinYinConv在.net core下载安装没有问题,但在.net framework会由于兼容性会安装失败,因此使用了PinYinC ...
C# 脚本
有些情况下,需要在程序运行期间动态执行C#代码,比如,将某些经常改变的算法保存在配置文件中,在运行期间从配置文件中读取并执行运算。这时可以使用C#脚本来完成这些工作。
使用C#脚本需要引用库Microsoft.CodeAnalysis.CSharp.Scripting,下面是一些示例:
最基本的用法是计算算数表达式:
Console.Write("测试基本算数 ...
C# 扫描识别图片中的文字(.NET Framework)
环境配置
本文以C#及VB.NET代码为例,介绍如何扫描并读取图片中的文字。
本次程序环境如下:
Visual Studio版本要求不低于2017
图片扫描工具:Spire.OCR for .NET
图片格式:png(这里的图片格式支持JPG、PNG、GIF、BMP、TIFF等格式)
扫描的图片文字:中文(另外可支持英语、日语、韩语、德语、法语等)
.NET Framework 4 ...
C# 编写一个小而快的 Windows 动态桌面
开源前段时间写的 Windows 动态桌面软件,在接下来的博客我将描写一些实现细节。这个软件可以把视频设置成桌面背景播放,而且还支持把网页或网页文件设置成桌面背景。支持 .NET Framework 和 .NET Core 运行时,支持 Windows10/11 系统。
欢迎 Star 和 Fork https://github.com/he55/DreamScene2
下载地址
https://github. ...
了解C#的Expression
我们书接上文,我们在了解LINQ下面有说到在本地查询IEnumerbale主要是用委托来作为传参,而解析型查询
IQueryable则用Expression来作为传参:
public static IEnumerable<T> Where<T>(this IEnumerable<T> enumable, Func<T, bool> func)
public static IQueryable<T> Where<T>(this IQueryable<T> queryable, Expression ...
c# System.Text.Json 精讲
本文内容来自我写的开源电子书《WoW C#》,现在正在编写中,可以去WOW-Csharp/学习路径总结.md at master · sogeisetsu/WOW-Csharp (github.com)来查看编写进度。预计2021年年底会完成编写,2022年2月之前会完成所有的校对和转制电子书工作,争取能够在2022年将此书上架亚马逊。编写此书的目的是因为目前.NET市场相对低迷 ...
C#中的记录(record)
从C#9.0开始,我们有了一个有趣的语法糖:记录(record)
为什么提供记录?
开发过程中,我们往往会创建一些简单的实体,它们仅仅拥有一些简单的属性,可能还有几个简单的方法,比如DTO等等,但是这样的简单实体往往又很有用,我们可能会遇到一些情况:
比如想要克隆一个新的实体而不是简单的引用传递 ...
C# Volatile
1.Overview
经常研究.NET源码库的小伙伴会经常看到一个关键字volatile,那它在开发当中的作用是什么呢?
我们一起来看看官方文档里是怎么描述的,如下:
“volatile 关键字指示一个字段可以由多个同时执行的线程修改。出于性能原因,编译器,运行时系统甚至硬件都可能重新排列对存储器位置的读取和写入。声明为 volatile ...
C#中ref关键字的用法总结
ref表示引用的意思,C#中它有多种用法,这里简单总结一下:
1、按引用传递参数
具体可见:C#中的值传递与引用传递(in、out、ref)
2、引用局部变量
引用局部变量指的是在变量声明时使用ref关键字(或者使用ref readonly表示未只读),表示这个变量是另一个变量的引用,而不是值对象的赋值,或者引用类 ...
C#中的值传递与引用传递(in、out、ref)
在C#中,方法、构造函数可以拥有参数,当调用方法或者构造函数时,需要提供参数,而参数的传递方式有两种(以方法为例):
值传递
值类型对象传递给方法时,传递的是值类型对象的副本而不是值类型对象本身。常用的一个例子:
public struct MyStruct
{
public int Value { get; set; }
...
深入xLua实现原理之C#如何调用Lua
本文主要是探讨xLua下C#调用Lua的实现原理,有关Lua如何调用C#的介绍可以查看深入xLua实现原理之Lua如何调用C#
C#与Lua数据通信机制
无论是Lua调用C#,还是C#调用Lua,都需要一个通信机制,来完成数据的传递。而Lua本身就是由C语言编写的,所以它出生自带一个和C/C++的通信机制。
Lua和C/C++的数据交互通过栈进行,操作数据 ...
C#导出数据—使用Word模板
前言
本文主要介绍C#使用标签替换的方法导出数据,导出的数据模板使用Word文档。
模板建立
首先创建一个Word文档,然后建立一个基础模板。然后将上方菜单切换到插入菜单。
然后在想填充数据的地方添加书签,如下图,光标在年的前方,点击上方的书签按钮。
书签全部添加完如下图所示:
书签默认是看不到的,我们可以打开文 ...
C#中List是链表吗?为什么可以通过下标访问
使用C#的同学对List应该并不陌生,我们不需要初始化它的大小,并且可以方便的使用Add和Remove方法执行添加和删除操作,但却可以使用下标来访问它的数据,它是我们常说的链表吗?
List<int> ls = new List<int>(); ls.Add(1); Console.WriteLine(ls[0]); //输出 1
先简单 ...
C# .NET Core 3.1 中 AssemblyLoadContext 的基本使用
C# .NET Core 3.1 中 AssemblyLoadContext 的基本使用
前言
之前使用 AppDomain 写过一个动态加载和释放程序的案例,基本实现了自己“兔死狗烹”,不留痕迹的设想。无奈在最新的 .NET Core 3.1 中,已经不支持创建新的 AppDomain 了(据说是因为跨平台实现太重了),改为使用 AssemblyLoadContext 了。不过总体使用下来感觉 ...
深入xLua实现原理之Lua如何调用C#
xLua是腾讯的一个开源项目,为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力。本文主要是探讨xLua下Lua调用C#的实现原理。
Lua与C#数据通信机制
无论是Lua调用C#,还是C#调用Lua,都需要一个通信机制,来完成数据的传递。而Lua本身就是由C语言编写的,所以它出生自带一个和C/C++的通信机制。
Lua和C/C++的数据交互通过 ...
浅谈C#更改令牌ChangeToken
前言
在上篇文章浅谈C#取消令牌CancellationTokenSource一文中我们讲解了CancellationTokenSource,它的主要功能就是分发一个令牌,当我取消令牌我可以进行一些回调操作或者通过令牌状态得知被取消。在上文的结尾处我们也提到了,默认情况下CancellationTokenSource产生的Token是一次性的,Cancel ...
C# 入门实战系列文章
【时常听人说,一文解读某某技术,啥啥只看一文就够了,但一篇文章真的就能解读的了吗?不管你信不信,反正我是不信。】做为一个十多年开发经验的老程序员,在工作中,接触过各种各样的开发语言,前端后端都略有涉猎,如:Html,JavaScript,CSS,Java,C#,Pascal,SQL等,每一种语言都有其应用场景及优势,并不是说一种语 ...