
C#
望天hous
虚心学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C# 中mysql数据库,已经在原有数据库升级数据库脚本,去管理可以一次,和多次执行的,nuget包
DbUp和是较为流行的选择,适合需要灵活性和控制力的场景。适合已经使用EF Core的项目。是一个轻量级的选择,适合简单的迁移需求。根据你的项目需求选择合适的工具,可以大大简化数据库升级的管理工作。原创 2025-01-06 15:28:46 · 954 阅读 · 0 评论 -
C#中在实现多语言遇到问题
请注意,虽然上述列表包含了许多常见的语言和区域设置,但并非所有可能的组合都是有效的或受支持的。这些 CultureInfo 名称遵循 ISO 639-1(语言代码)和 ISO 3166-1(国家/地区代码)的标准,用于在.NET应用程序中表示特定的文化和区域设置。虽然你可以为 CultureInfo 的 Name 属性赋值任何符合上述格式的字符串,但并不是所有可能的组合都是有效的或受支持的。因此,最好使用.NET框架提供的预定义区域性名称,或者确保你设置的区域性名称在你的目标环境中是有效和受支持的。原创 2024-12-31 15:40:40 · 1234 阅读 · 0 评论 -
C# 中使用 MassTransit
在生产环境中使用 MassTransit 时,通常需要进行详细的配置,包括设置连接字符串、配置队列、配置消费者、处理重试和错误队列等。以下是一个完整的示例,展示了如何在 ASP.NET Core 应用程序中配置 MassTransit,包括请求/响应模式和事件模式,并使用依赖注入。原创 2024-12-25 17:10:52 · 1109 阅读 · 0 评论 -
C# 和 go 关于can通信得 整理
在C#中开发CAN(Controller Area Network)通信接口时,确实有一些现成的NuGet包可以简化你的开发工作。这些库通常提供了与CAN硬件接口通信所需的基本功能,如发送和接收CAN消息。这些库都提供了基本的CAN通信功能,你可以根据你的具体需求选择合适的库。如果你使用的是特定的CAN硬件,建议查看该硬件的官方文档或示例代码,因为某些硬件可能有特定的驱动程序或库支持。是的,Go语言也有类似的库来支持CAN通信。如果你需要与特定的硬件控制器进行交互,可能需要查找针对该硬件的专用Go包。原创 2024-12-13 16:26:00 · 1115 阅读 · 0 评论 -
浅谈mysql【8.0】链接字符串
禁用 SSL 加密,适用于不关心安全的场景。: 允许客户端从服务器获取公钥,适用于 MySQL 8.0 及以上版本的认证插件。: 允许在 SQL 查询中使用用户变量,适用于需要使用用户变量的场景。如果只使用基本的连接字符串,而不配置和这些参数,会有几个显著的区别。安全性: 如果不配置sslmode,将可能在不安全的环境中传输数据,但可能不影响连接的可用性;但如果要求使用 SSL 且未配置,连接会失败。公钥处理: 不配置。原创 2024-10-31 09:26:41 · 1183 阅读 · 0 评论 -
C# 中Linq探讨 Or条件拼接
然而,如果你需要根据不同的条件动态地构建查询(例如,用户可能只输入了名字,或者只输入了年龄范围,或者两者都输入了),那么 PredicateBuilder 就变得非常有用。PredicateBuilder 的主要用途是构建复杂的逻辑表达式,特别是当你需要动态地添加条件时(例如,在运行时根据用户的输入构建查询)。虽然没有一个特定的NuGet包专门用于拼接LINQ的OR条件,但你可以使用PredicateBuilder这样的模式或直接在查询中编写条件来达成目的。方法一:使用PredicateBuilder。原创 2024-08-20 17:05:19 · 880 阅读 · 0 评论 -
C# 中用 TopShelf服务创建和延迟运行
以下是一个简单的示例,展示了如何使用 TopShelf 创建一个服务,并在服务启动后延迟执行某些操作。你可以通过 Topshelf 提供的命令行工具来安装、卸载和启动服务。你可以通过这种方式来配置 Topshelf 服务,使其符合你的需求。这样一来,当系统启动后,服务会在一段时间后自动启动,而不是立即启动。在这个例子中,我创建了一个简单的定时器来模拟服务的持续运行。此外,根据你的具体需求,你可能需要调整服务的逻辑和配置。如果你想使用 Topshelf 来配置一个延迟自动启动类型的服务,可以通过设置。原创 2024-07-19 09:10:26 · 709 阅读 · 0 评论 -
C#中类型装换
在上述示例中,我们通过反射获取了MyClass类中的MyProperty属性的信息,然后使用Convert.ChangeType()方法将字符串类型的值"10"转换为属性的类型(int),最后使用反射设置属性的值为转换后的值10。在C#中,可以使用Convert.ChangeType()方法进行类型转换。这个方法可以将一个对象转换为指定的类型。原创 2024-01-27 15:24:51 · 511 阅读 · 0 评论 -
C# 中 async/await 遇上 forEach 两种写法,是否按照遍历?
在 C# 中,async/await 与 forEach 可以搭配使用,但需要注意的是,forEach 本身不是一个异步操作,它会按顺序同步地遍历集合中的元素,并将每个元素作为参数传递给回调函数。运行以上代码,你会发现 forEach 循环会立即输出 “forEach 循环完成”,而后再一次性输出所有数字,因为 async/await 在 forEach 循环中并不起作用。需要注意的是,对于 forEach 循环中的异步操作,你无法保证它们会以预期的顺序执行,因为它们是并行执行的。原创 2023-12-29 09:06:46 · 1732 阅读 · 0 评论 -
netcore中只能启动一个程序
在启动程序时候,有时候在启动一个后不能再次启动,需要我们做一些判断。原创 2023-06-09 17:32:29 · 252 阅读 · 0 评论 -
C# Task拓展方法
TASK,英语单词,名词、动词,作名词的意思是“(困难的)任务,工作;(语言教学中的)活动”,作动词的意思是“派给某人(任务);对(手段或能力)要求极高”如果单独想执行一个任务,忽略错误,此方法比较适合使用。...原创 2022-07-05 11:12:00 · 334 阅读 · 0 评论 -
C#中 简单链表实现
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)原创 2022-07-04 09:39:15 · 2118 阅读 · 0 评论 -
.net中 接口可以有默认实现了
从 .NET Core 3.0 上的 C# 8.0 开始,可以在声明接口成员时定义实现。 最常见的方案是安全地将成员添加到已经由无数客户端发布并使用的接口。示例:C# 中比较常见的两个接口。 然后新特性来了。...原创 2022-07-03 17:37:42 · 401 阅读 · 0 评论 -
C# 中只运行一次帮助类
帮助类原创 2022-06-20 10:08:42 · 191 阅读 · 0 评论 -
C# netcore中 配置帮助类IConfiguration
IConfiguration 帮助类原创 2022-06-20 08:40:42 · 1104 阅读 · 0 评论 -
C#中 ReadOnlySequence<T> 用法, 缓冲区
有助于读取跨多个缓冲区运行的数据的类型。 它们主要用于支持 PipeReader 对象。ReadOnlySequenceReadOnlySequence 是一个可以表示 T 的连续或非连续序列的结构。 它通过以下方法进行构造:一个 T[]一个 ReadOnlyMemory一对链接列表节点 ReadOnlySequenceSegment 和索引,用于表示序列的开始位置和结束位置。第三种表示形式最值得关注,因为它对 ReadOnlySequence 上的各种操作有性能影响:是一个不透明的值,该值将索引原创 2022-06-16 15:23:05 · 1613 阅读 · 0 评论 -
C# 中IO操作通用类
IO原创 2022-06-16 13:05:44 · 359 阅读 · 0 评论 -
C#通过字节读取数据
C# 通用方法,读取或者写入大端小端数据方法原创 2022-06-14 14:09:58 · 750 阅读 · 0 评论 -
C# EFCore 比较两个对象
EFcore 比较复杂对象原创 2022-06-14 09:49:45 · 297 阅读 · 0 评论 -
C# 伪随机数生成
C# 随机数帮助类用到拆箱装箱,有没有更好的办法,欢迎在底部留言。。 class RandomHelper { public static T GetRandom<T>() { try { Random random = new Random(GetSeed()); Type curType = typeof(T);原创 2022-04-07 17:22:00 · 875 阅读 · 0 评论 -
vs编辑器功能之生成事件
在C#编译中,使用反射时候,不能自动复制类库,所以就需要 属性–>生成事件–>生成后事件命令(0)添加下面两句copy "$(TargetDir)*.dll" "$(SolutionDir)ConsoleClient\bin\Debug" copy "$(TargetDir)*.dll" "$(SolutionDir)ConsoleClient\bin\Release"其中 ConsoleClient\bin\Debug 就是你程序要用的目录...原创 2022-01-28 10:25:06 · 651 阅读 · 0 评论 -
C#操作字节上位方法
/// <summary> /// 操作一个字节各个位方法 /// </summary> /// <param name="word">要操作的字节</param> /// <param name="value">要设置值</param> /// <param name="offset">开始偏移的位数</param> ...原创 2022-01-25 14:26:47 · 367 阅读 · 0 评论 -
C#中索引器的实现
今天突然被人问到,C#中什么是索引器?脑子一片空白, 那个啥就是一个方括号。 懵逼的回答。先百科一下,得到如下结果:C# 索引器(Indexer)索引器(Indexer) 允许一个对象可以像数组一样使用下标的方式来访问。当您为类定义一个索引器时,该类的行为就会像一个 虚拟数组(virtual array) 一样。您可以使用数组访问运算符 [ ] 来访问该类的的成员。然后自己定义一个泛型索引器的类:using System;using System.Collections.Generic;u原创 2022-01-24 20:57:38 · 1128 阅读 · 0 评论 -
C# 使用 thrift-0.15.0 实现RPC协议
到了网络时代,大家的电脑都连起来了。以前程序只能调用自己电脑上的进程,能不能调用其他机器上的进程呢?于是就程序员就把IPC扩展到网络上,这就是RPC(远程过程调用)了。现在不仅单机上的进程可以相互通信,多机器中的进程也可以相互通信了.所用到的演示软件和文本:https://download.youkuaiyun.com/download/weixin_43542114/43118953打开 gen-netstd 文件中生成的C# 类 然后创建 中间通信类创建服务端核心代码:using System;us原创 2021-11-16 21:04:49 · 1108 阅读 · 2 评论 -
C# 通过snmp获取内存占用大小(物理内存)
SNMP 可以使网络管理员通过一台工作站完成对计算机、路由器和其他网络设备的远程管理和监视。利用 SNMP 协议可以更好地管理和监控网络。管理工作站可以远程管理所有支持该协议的网络设备,如监视网络状态、修改网络设备配置、接收网络事件警告等。要使用snmp需要开始本地snmp服务,和配置团体名称。使用微软提供的snmp类库:SnmpSharpNet。win10 开启snmp方法:https://wwr.lanzoui.com/iFzRht4xzkb密码:euzt底部附送C# 动态库方法: ///原创 2021-08-25 11:18:02 · 1338 阅读 · 0 评论 -
C# 的claimsIdentity 类中的类图
原创 2021-08-23 14:44:42 · 490 阅读 · 0 评论 -
C# 的 System.IO.Pipelines:.NET 中的高性能 IO
System.IO.Pipelines是一个新的库,旨在使在 .NET 中执行高性能 IO 变得更加容易。它是一个面向 .NET Standard 的库,适用于所有 .NET 实现。Pipelines 诞生于 .NET Core 团队为使 Kestrel 成为业内最快的 Web 服务器之一所做的工作。最初作为 Kestrel 内部的一个实现细节发展成为一个可重用的 API,在 2.1 中作为第一类 BCL API (System.IO.Pipelines) 提供给所有 .NET 开发人员。它解决什么问题原创 2021-08-17 17:02:51 · 2858 阅读 · 0 评论 -
C#中的集合知识总结
C# 中的集合总结:一:按照命名空间进行分类:1: 经常在用就是C#中的普通数据集合。描述:集合使用的接口和基类2:泛型集合,者在2.0 就已经引入了,这个比较好用,但是多线程操作同一个集合就会出现问题。3: 多线程安全泛型集合。顾名思义4: 描述:专为原始集合的内容永远不会更改的场景设计,尽管他们可以将修改后的集合创建为新实例。 貌似具有不可能改特性。目前自己没有碰到这种使用情况。二: 各个接口之间的类图关系C# 中的集合都实现[Icollection] 和[IEnumberable] 这原创 2021-07-28 17:35:52 · 224 阅读 · 0 评论 -
C# 把一个缓冲区的特定位数 转化成数字
前两天碰到一个需求就是把一个byte数组中的特定几位转化成数字。经过简单分析可得,自己封装了一个简单方法。思路分析过程:日志接口的十六进制数据: 30 10 00 00 B6 28 A7 60 8F 84 01 40 41 02 03 67 66要求如何取得 bit 位是 11-18 标识数据, 最好能写一个通用算法:分析过程: 一般收到数据的 byte[] 数字,最小存储单元就是, 字节, 换算规律 1字节=8 bit所以要想获取字节上的位数据 需要用到 & | 位运算符。提取可原创 2021-07-24 14:39:07 · 234 阅读 · 0 评论 -
C# 中计算阶乘的函数方法 备忘
private static double BingCal(int nu) { double result = 1; if (nu <= 1) { return result; } result = result * nu; return result * BingCal(nu - 1); ...原创 2021-06-18 17:37:44 · 612 阅读 · 0 评论 -
C#中 checked 检查数字是否溢出问题 备忘
private static void OverFlowExceptionTest() { //look this two Code Where is different #region MyRegion Console.WriteLine("no check overflow"); int val1 = int.MaxValue - 1; Console.Write.原创 2021-06-17 17:04:13 · 257 阅读 · 1 评论 -
C# foreach 的实现 和探索
除了foreach 另外一种方式遍历 private static void TestForeach1() { List<int> ls = new List<int>(); for (int i = 0; i < 10; i++) { ls.Add(i); } //进行遍历 Cons原创 2021-06-16 16:33:15 · 150 阅读 · 0 评论 -
C# 中的switch case 模式匹配 写法 备忘
private static void TestSwitch() { string path = "a.txt"; lab1: Console.WriteLine("Input Key R Read Or W Write:"); ConsoleKeyInfo inputKey = Console.ReadKey(); Console.WriteLine(); .原创 2021-06-16 11:29:42 · 982 阅读 · 0 评论 -
C# 通用类 备忘,用于重写操作符的示例
/* ============================================================================== * 功能描述:Property * 创 建 者:Dell * 创建日期:2021/6/15 15:06:27 * ==============================================================================*/using System;using System.Co原创 2021-06-15 16:44:58 · 439 阅读 · 0 评论 -
C# 实现注册定时器管理 备忘
public class TimerTaskManger { private readonly Dictionary<string, TimerTask> AllTimerMangerDic = new Dictionary<string, TimerTask>(); public bool RegistTimer(string name, Action<object> action, int interval) .原创 2021-05-26 10:13:14 · 159 阅读 · 0 评论 -
C# 的EF 操作Mysql模式 Core first模式
操作步骤:先安装mysql的net连接驱动库,否则可能会报错,找不到本地驱动提供者. 版本信息【mysql-connector-net-8.0.25.msi】链接: https://pan.baidu.com/s/18m6o3MZrl5R4_XXyWKnMhw 提取码: 18sp 复制这段内容后打开百度网盘手机App,操作更方便哦也可以自己去官网下载。因为使用的是core first 所以不再下载mysql的vs可视化图形工具。安装对应的其他依赖的 mysql.data 和对应原创 2021-05-14 11:46:52 · 439 阅读 · 0 评论 -
C#的EF6操作sqlite 数据库
配置<?xml version="1.0" encoding="utf-8"?> <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" /></providers>原创 2021-05-11 13:38:46 · 2386 阅读 · 0 评论 -
C#对serialport 类的封装
实现是来并不难,主要是面向接口编程思想:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ClassLibrary1{ //串口接口定义 public interface IComserial { int ReadBuf(byte[] buf, int offs原创 2021-04-19 13:09:45 · 586 阅读 · 1 评论 -
C# 中的设计模式练习,文件分割器。通用库设计
使用的是设计模式有:行为型:观察者,状态。 暂且这么多后期有进行了通用分割方便的重构。using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;namespace FileSplitter{ public class Splitter { public SplitterState CurSplitState { get原创 2021-04-08 14:53:45 · 176 阅读 · 0 评论 -
C#代码类CRC效验,查表法
直接把完成要校验的的byte[] 数组传入 ,如果方法crc16 返回不为零 即数据无效:using System;using System.Collections.Generic;using System.Text;namespace Common{ public static class ModbusCRC { static ModbusCRC() { InitCRCStorage(); }原创 2020-07-01 18:30:21 · 3059 阅读 · 2 评论