![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#学习之路
文章平均质量分 54
旧时量刑
每天都要进步一点点
展开
-
C# ManualResetEvent和AutoResetEvent的作用
ManualResetEvent:是手动的,每次通过后,手动关闭,即上一个游客通过后,闸门没有手动关闭,这闸门一直开着,剩下的游客不需要检票也可通过。AutoResetEvent:是自动的,每次通过后,自动关闭,即上一个游客通过后,闸门自动关闭,下一个游客需要再检票通过,就像一座城门,一下子可以涌入千军万马,当然你也可以随时关闭城门,让后面的人进不来。是用来控制线程暂停或者继续的,常用的方法有WaitOne,set,Reset.,仅有一个线程会继续。set:身份核验通过,你买的是今天的票,开启闸门。原创 2023-05-08 14:43:54 · 543 阅读 · 1 评论 -
C# interface的作用
interface的作用:接口用于描述一组类的公共方法和属性,但是他不实现任何的方法或属性。继承接口的类要实现接口中的全部功能。比如说 一个公司的员工,每个员工都需要做的事情是打卡、写日报等,但是每个人员工还有属于他自己的个人职责,比如说会计、开发、人力等。原创 2023-05-08 10:50:06 · 357 阅读 · 0 评论 -
C# RabbitMq学习三
目前在做一个项目,需要A服务中数据库变化的时候,通知B服务,就需要 分布式事件总线RabbitMq来解决:允许和传输的事件. 你可以使用分布式事件总线在或之间异步发送和接收消息.原创 2022-08-18 15:39:09 · 747 阅读 · 0 评论 -
RabbitMq 学习二
在路由模式(Direct)中,可以实现不同的消息被不同的队列消费,在Direct模式下,交换机不再将消息发送给所有绑定的队列,而是根据Routing Key将消息发送到指定的队列,队列在与交换机绑定时会设定一个Routing Key,而生产者发送的消息时也需要携带一个Routing Key。fanout 交换器不处理路由键,只是简单的将队列绑定到交换器上,每个发送到交换器的消息都会被转发到与该交换器绑定的所有队列上。结果:消费者1和消费者2可以收到消息,消费者3不能收到消息。......原创 2022-08-17 19:56:04 · 484 阅读 · 0 评论 -
RabbitMQ学习一 安装
下载比较慢:https://www.aliyundrive.com/s/3jFhtjYsbX5 提取码: 1t3s。第三步:在浏览器输入地址http://127.0.0.1:15672/,进入管理页面,账户密码都是guest。其中需要安装依赖OPT:http://www.erlang.org/downloads。如果浏览器访问不成功,第一步查看端口是否开放,没有开放端口的话把端口打开,在尝试一下。第二步:cmd管理员权限进入安装目录/bin。第三步.检查Erlang是否安装成功。...原创 2022-08-17 18:51:53 · 462 阅读 · 0 评论 -
C# 委托 delegate 的理解
委托就是委托某个方法来实现具体的功能,类似于甲方委托乙方去实现需求;出租房屋人委托中介为其出租房屋。委托是一种引用类型,从数据结构上来讲委托和类一样,都是一直用户自定义类型。...原创 2022-07-27 22:35:33 · 494 阅读 · 0 评论 -
创建Abp+.net 6+Mysql 项目
创建一个版本abp-5.3.2、UI 为Angular、数据库为mysql的项目第一步:第二步: 创建一个版本abp-5.3.2、UI 为Angular、数据库为mysql,身份认证服务的项目第一步:第二步: 更多内容参考:https://docs.abp.io/zh-Hans/abp/6.0/CLI 第一步:Get Started | ABP.IO第二部.........原创 2022-07-11 18:09:44 · 958 阅读 · 0 评论 -
浅浅理解.net core的路由
默认路由模板,大多数的URL都会按照这个规则进行映射。问号表示 id 参数可有可无。 如果要定义自己的路径模板,要使用 UseMvc()方法,而不是 UseMvcWithDefaultRoute()方法。 属性路由:使用属性路由,可以在Controller或 Controller 的操作方法上应用Route属性。在Startp.cs文件Configure方法中,我们只使用app.UseMvc();然后在Controller的Action方法上通过特性Route来配置。在实际项目中运用到原创 2022-07-05 14:21:12 · 1574 阅读 · 0 评论 -
C# ManualResetEvent 类的理解
//来自于 C# ManualResetEvent 类的用法_随风吹笛的博客-CSDN博客_manualresetevent原创 2022-06-17 14:55:17 · 522 阅读 · 0 评论 -
C# 堆和栈的理解
垃圾回收GC:当我用new创建一个对象时,可分配的内存不足时GC就会去回收未使用的对象,但是GC的操作是非常复杂,会占用很多的cpu时间。硬盘:数据持久化(就是说 关机之后在开机数据还有,但是内存断电以后数据不在保留)开机等待的原因就是等硬盘中的数据传输到内存中,数据到了内存中才能被cpu调用当我们编写程序的时候,操作系统把我们编写的程序分五个区,分派在内存中这个区是:栈区,堆区、常量区、静态区、代码区,static的变量存放在静态区堆 Heap:1.程序运行期间动态分配的内存空原创 2022-05-20 16:27:42 · 1363 阅读 · 0 评论 -
C# try catch finally理解
try…catch…finally-作用用于处理C#语言中的异常组成方式try可以与一个或者多个catch连接,也可以没有可以与finally连接(只能有一个)也可以没有 try { //可能导致异常的代码 } catch (Type ex) { //处理异常的代码 }原创 2022-05-11 17:56:29 · 287 阅读 · 0 评论 -
C# 浅拷贝与深拷贝
拷贝(copy):什么是拷贝:通常意义来说也就是复制,对象的拷贝也就是将对象复制出来一个一样的新对象出来。虽然都是复制对象,但是不同的复制方法,复制出来的对象确不是一样的,存在一些差异。有哪些拷贝方法:分为浅拷贝与深拷贝浅拷贝(shallow copy)什么是浅拷贝:...原创 2022-05-11 17:09:53 · 3390 阅读 · 0 评论 -
C# 值类型与引用类型的拆箱与装箱
装箱:就是将一个值类型的数据装到了引用类型的变量中static void SimpleBox(){ int myInt = 5; // 装箱操作 object boxedInt = myInt;}确切地说,装箱的过程就是将一个值类型分配给 Object 类型变量的过程。当你装箱一个值时,CoreCLR 会在堆上分配一个新的对象,并将该值类型的值复制到该对象实例。返回给你的是一个在托管堆中新分配的对象的引用。拆箱:Object引用类型变量的值转换回栈中相应的值.原创 2022-05-06 17:51:59 · 588 阅读 · 0 评论 -
C# 值类型与引用类型
一:什么是值类型与引用类型C#有两种数据类型,值类型和引用类型值类型在线程栈分配空间,引用类型在托管堆上分配控件值类型转化为引用类型称为装箱,引用类型转化为值类型称为拆箱 类别 描述 值类型 简单类型 有符号整型:sbyte,short,int,long 无符号整型:byte,ushort,uint,ulong Unicode字符:char IEEE浮点型:float,double...原创 2022-05-06 17:29:08 · 333 阅读 · 0 评论 -
C# 控制电脑本地时间修改
这两天项目要做TDOA算法,前提需要时钟同步,甲方客户部署环境是不联网的,需要通过GPS进行更新电脑时间,从网上看了很多方法,但是我这边都不成功,需要管理员权限,问了师父,我是修改了电脑的管理员权限,安全性会有影响,大家仅供参考这是方法一:这是调用API文档直接实现的[StructLayout(LayoutKind.Sequential)] public struct Systemtime { public ushort wYear; ...原创 2022-04-26 16:36:53 · 3015 阅读 · 4 评论 -
C# 变量和常量的定义与使用
1. 什么是变量概念:表示一个数据的存储空间,内存地址的别名作用:内存地址是一连串的十六进制数,非常不好记,通过变量可以快速找到数据2. 三要素变量类型:规定变量的数据类型变量名:有意义,好记忆变量值:变量对应的内存数据3. 使用方法 声明:规定变量的类型 赋值:变量只有具体的值才能使用 使用:存取数据 4. 变量名的组成要求组成:英文字母、数字、下划线组成 开头:只能以字符或者下划线开头 禁用:C#关键字(int..原创 2022-04-24 22:48:25 · 748 阅读 · 0 评论 -
使用.NET Core搭建WebSocket聊天室
第一步:安装WebScokets库首先需要安装Microsoft.AspNetCore.WebSockets这个库第二步:.NET Core与中间件需要在Startup类的Configure方法中添加WebSocket中间件:app.UseWebSockets();更一般地,我们可以配置以下两个配置,其中,KeepAliveInterval表示向客户端发送Ping帧的时间间隔;ReceiveBufferSize表示接收数据的缓冲区大小:var webSocketOption.原创 2022-04-22 11:03:39 · 5138 阅读 · 0 评论 -
C# 基础二 静态与非静态的区别
1 静态与静态的区别有没有static的修饰,有static修饰的就是静态,没有就是非静态2 静态类与非静态类1.静态类只包括静态成员2.静态类本质是一个抽象的密封类,不能被实例化,不能被继承3 不能包含实例构造函数3 静态成员与非静态成员 静态成员属于类所有,为各个类的实例公园,非静态成员属于实例所有 无论创建多少实例,类的静态成员在内存中只占同一块区域。非静态成员,在每次创建一个类的实例时,都会在内存中为非静态成员新分配一块存储 4 静态..原创 2022-04-22 10:30:14 · 2411 阅读 · 0 评论 -
C# MVC技术快速突破
网站运行原理 2. .NET Framework 包括两部分内容3 . ASP.NET-MVC原理理解App_Data:用来保存数据文件,比如XML文件等App_start: 包含MVC启动的相关类,FilterConfig(过滤器)、RouteConfig(路由)、WebApiConfigController:存放整个项目的控制器代码文件Models:存放整个项目的模型代码文件VIew:存放整个项目的视图代码文件,其中VIew下的web.config...原创 2022-04-19 22:30:32 · 446 阅读 · 0 评论 -
C# 调用cmd中 ping的命令
最近在项目开发中遇到了设备连接的问题,连接完设备后需要需要判断设备有没有断开,方法一就是使用cmd中的ping命令来看设备是否可以连通 public static string CmdPing(string strIp) { Process p = new Process(); p.StartInfo.FileName = "cmd.exe";//设定程序名 p.StartInfo.UseShellE..原创 2022-04-19 19:15:51 · 813 阅读 · 0 评论 -
C# 多线程学习一
1:什么是多线程:1:进程:电脑有很多的独立允许的程序,每个程序就是一个进程,进程之间是独立的,例如QQ、微信等2:线程:进程要想执行任务就需要线程,线程是进行最小的执行单位,一个进程至少有一个线程3:多线程:一个进程中有多个线程去同时执行即:一个程序运行后至少有一个进程,一个进程由一个或多个线程去完成2:为什么要使用进程1、 业务特性决定程序就是多任务的,比如,一边采集数据、一边分析数据、同时还要实时显示数据;2、 在执行一个较长时间的任务时,不能阻塞UI界面响应,必须.原创 2022-04-18 14:25:21 · 260 阅读 · 0 评论 -
SystemVue 介绍
SystemVue介绍:SystemVue是一款电子设计自动化软件,专门运用在电子系统设计,让使用者快速模拟并验证自己设计的通讯系统SystemVue模拟环境:workspace tree:各种模拟文件都会显示在这个领域Design: 集合期间,模型,公式,数学序言Sink: 收集设计节点上的特点资料Analysis:模拟控制器或者下达运行计算指令Dataset:模拟结构的资料集Display:以圆形或原表形式表示结果起始页面:点进Cancel以后打..原创 2022-04-18 14:21:19 · 1033 阅读 · 0 评论 -
C# 集合与字典
ArrayList是什么是.net framework 提供的用于数据存储和检索的专用类是命名空间System.Collection下的一部分ArrayList 的优势ArrayList的大小是按照其中存储的数据来动态扩充和收缩的在声明ArrayList对象时并不需要指定它的长度ArrayList可以很方便的进行数据的添加、插入和移除ArrayList的使用添加 .Add()删除 .RemoveAt() 指定位置的删除 .Remove() ...原创 2022-03-28 22:45:47 · 821 阅读 · 0 评论 -
设计模式三 工厂模式
工厂模式:上一篇我们知道了简单工厂的缺点是:当我们添加一个新的产品时需要修改工厂类,这样就违背了开闭原则。工厂模式就是为了解决这一缺陷而出现的,解决的方法是把创建具体实例的任务放在了工厂的子类中,工厂只提供了创建实例的的接口,还以上一篇中的生产手机为例: //手机抽象类 public abstract class Mobile { public abstract void Print(); } //华为手机 public c原创 2022-03-27 17:46:02 · 210 阅读 · 0 评论 -
设计模式二 简单工厂模式
简单工厂模式我们可以理解为负责生产对象的一个类,它的主要作用是创建具体的产品类实例之前的开发过程中,都是用new来创建一个对象,该类就依赖与这个对象,也就是耦合度高 //手机抽象类 public abstract class Mobile { public abstract void Print(); } //华为手机 public class HUAWEI : Mobile { public overrid.原创 2022-03-27 17:28:57 · 176 阅读 · 0 评论 -
设计模式一 单例模式
单例模式:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。一个类只有一个实例,即一个类只有一个对象实例。即要求它的构造方法不能是公开的,既不能被外界进行实例化,即方法为private怎么实现:单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称)。1:将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯原创 2022-03-27 16:26:46 · 684 阅读 · 0 评论 -
C# 语法基础一
1:引用命名空间using Microsoft.AspNetCore;2: 命名空间namespace 名字3:类名称class 名称4:方法或者函数public void Main()原创 2022-03-22 22:14:18 · 252 阅读 · 0 评论