C# 11 的新特性和改进前瞻
前言 .NET 7 的开发还剩下一个多月就要进入 RC,C# 11 的新特性和改进也即将敲定。在这个时间点上,不少新特性都已经实现完毕并合并入主分支 C# 11 包含的新特性和改进非常多,类型系统相比之前也有了很大的增强,在确保静态类型安全的同时大幅提升了语言表达力。 那么本文就按照方向从 5 个大 ... »
C#请求HTTPS地址的故障分析和TLS知识点总结
背景介绍 近期收到同事反馈,在C#程序中通过HTTPClient请求一个HTTPS的地址时,在本地开发环境和测试环境均能正常执行,而部署到生产环境后发生异常且稳定复现,异常提示为:【请求被中止: 未能创建 SSL/TLS 安全通道 】,而且在生产环境用浏览器访问是没问题的。 目标站点和运行环境介绍 ... »
C# / VB.NET 将Html转为Word
本文分享以C#程序代码为例,实现将Html文件转换Word文档的方法(附VB.NET代码)。在实际转换场景中可参考本文的方法,转换前,请按照如下方法引用Word API的dll文件到Visual Studio。安装时,可通过以下2种方法: 1.通过NuGet安装dll(2种方法) 1.1 可以在Vi ... »
C#怎样链接mysql数据库
C#一般链接sqlserver数据库,当然也会链接oracle。C#和MYSQL搭配貌似不多见哦 下面说说方法。 1、下载链接库文件,MySql.Data.dll MySql.Data.rar 2、工程引用文件,并在类文件中应用using using MySql.Data; using MySql.Data.MySqlClient; 3、下来其他就和sqlserver差不多了。 4、配置文件中的链 »
C#实现异步消息队列
C#实现异步消息队列 消息队列 消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自使用者。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的资料,包含发生的时间,输入装置的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列互交。消息会保存在队列中,直到接收者取回它。 简单的说 »
C#迭代语句
1,do while语句 do语句重复执行语句或者语句块,直到指定的表达式为false为止。循环体如果为单个语句,可以不放在{}内,如果不是,那么必须放在{}内。如下面的代码 int i=0; do{ Console.WriteLine(i); i++ }whie(i<10); do{ Console.WriteLine(i); while(i<5); 没有加{}的会无 »
C# 控制台程序(命令行程序)设置字体颜色,窗口宽高,光标行数
控制台程序(命令行程序)设置窗口宽度高度,如下代码: Console.WriteLine(Console.WindowHeight); Console.WriteLine(Console.BufferHeight); Console.ReadKey(); Console.Title = "Test" »
C# 带清除按钮的文本框TextBoxContainClearButton
效果如下: 新建一个用户自定义控件,添加1个2个文本框控件,1个按钮,通过属性,设置如下样式: 特别要说明的,按钮Text设置为r,Font设置为Marlett,12px。 代码如下: public partial class TextBoxContainClearButton : UserControl { public TextBoxContainClea »
C# 将多个DataTable添加到指定的DataSet中
DataSet ds = new DataSet();//创建数据集 DataTable dt1=new DataTable(); //表1 DataTable dt2 = new DataTable(); //表2 给table 取名再插 于是代码便成这样 dt1.TableName="dt1n"; ds.Tables.Add(dt1); dt2.TableName="dt2n"; ds.T »
C# 进程Process基本的操作说明
public int CallPhoneExe(string arg) //arg为进程的命令行参数 { WaitHandle[] waits =new WaitHandle[2]; //定义两个WaitHandle值,用以控制进程的执行过程 waits[0] = HSTOP; //AutoResetEvent HSTOP = new A »
C# 使用 redis
概念 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率, »
C#:try语句
try语句提供了一种捕获程序发生异常的机制。try语句有三种形式: 1、一个try块儿后跟一个或多个catch块儿 2、一个try块儿后跟一个finally块儿 3、一个try块儿后跟一个或多个catch块儿,最后再跟一个finally块儿。(最常用) 例子:声明一个Caculator类型,并定义一个Add()方法,调用这个Add()方法并传入该方法需要的两个string类型的参数,即可求出两数之 »
SQLSERVER数据类型与C#数据类型对应关系
SQL SERVER类型 C#类型 精确数字 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。 Int64 int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数 »
CMPP SP端 C# 实例
//附CMPPClient.cs: /* 作者:TNT 时间:2003年12月 文件说明:本文件实现SP端的协议开发。 */ using System; using System.Security.Cryptography; using System.Net.Sockets; using System.Net; using System.Text; using System.Threadi »
根据权重随机选取指定条数记录的简单算法实现(C#)
一.应用场景: 有时我们需要从一些列数据中根据权重随机选取指定条数记录出来,这里需要权重、随机,我们根据权重越大的,出现概率越大。例如广告系统:可根据客户支付金额大小来调控客户们的广告出现概率,客户支付金额越大,其广告出现频率越频繁,例如:加入有10条广告,然后每条广告都有一个权重,我们每次要根据权重选取5条广告出来进行显示。有了需求,我们就进行解决,本文章就是利用一种简单的算法来实现根据权重来随 »
C#上传文件小函数
HTML: 1<asp:FileUpload ID="FileUpload1" runat="server" /> C#: 1#endregion »
c#——树的深度,广度优先遍历与迭代器(IEnumerable)的结合使用
树是开发工作中比较常见的一种数据结构,园子里有很多文章介绍了对它的遍历,此处我们结合c#的迭代器机制,创建两种树的遍历方法。 static IEnumerable<T> DepthFirstTravel<T>(T root,Func<T,IEnumerable<T>> getChildren) { if »
c#进阶(4)—— Redis 用于消息队列的存储
1、参考的博文 a : http://www.cnblogs.com/lori/archive/2012/04/12/2443708.html —— 主要的实现思路 b: http://www.cnblogs.com/liqingwen/archive/2017/04/06/6672452.html —— RedisHelper 类 c : https://www.cnblogs.com/sto »
C#类型获取实例
public static class ToObject<T> where T : class { public static Dictionary<string, string> values = new Dictionary<string, string>(); static object target; private stati »
C#内存分配学习
CLR内存分配分三大块区域:栈、GC堆、大对象堆。 一、线程堆栈(栈) 用于分配值类型实例。栈由操作系统进行管理,不受GC管理,当值类型不在其作用域(主要是指其所在函数内)时,其所占栈空间自动释放。栈的执行效率是非常高的。 二、GC堆(堆) 用于分配小对象实例。所谓小对象就是大小小于85000字节的实例对象。GC堆分三代垃圾进行管理,当进行GC操作(垃圾回收)时,垃圾收集器会对GC堆进行压缩回收。 »
- 【docker专栏2】CentOS操作系统安装DockerCE 2022-07-10
- github package的使用教程 2022-07-10
- 前端周刊第二十七期 2022-07-10
- 官宣!微软发布 VS Code Server! 2022-07-10
- 强化学习-学习笔记13 | 多智能体强化学习 2022-07-10
- 【跟着大佬学JavaScript】之lodash防抖节流合并 2022-07-10
- datax开启hana支持以及dolphinscheduler开启datax任务 2022-07-10
- C# 11 的新特性和改进前瞻 2022-07-10
- Python 中生成器的原理 2022-07-10
- 【C++】学生管理系统 2022-07-09
- Python迭代器 2022-07-09
- Harbor-私有镜像仓库的安装部署 2022-07-09
- 从傅里叶级数(Fourier series)到离散傅里叶变换(Discrete Fourier transform) 2022-07-09
- Nginx越界读取缓存漏洞 CVE-2017-7529 2022-07-09
- NuGetTools:批量上传、删除和显示NuGet包 2022-07-09
- 使用docker buildx打包发布多平台镜像 2022-07-09
- 一个思维导图,带你深入理解 Linux 网络 2022-07-09
- 可视化基础:已知2点坐标,如何求旋转角度? 2022-07-09
- DIY蓝牙hub F1方向盘 2022-07-09
- 通用查询的抽象 2022-07-09