C#文章/教程

C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。

C# 11 的新特性和改进前瞻

前言 .NET 7 的开发还剩下一个多月就要进入 RC,C# 11 的新特性和改进也即将敲定。在这个时间点上,不少新特性都已经实现完毕并合并入主分支 C# 11 包含的新特性和改进非常多,类型系统相比之前也有了很大的增强,在确保静态类型安全的同时大幅提升了语言表达力。 那么本文就按照方向从 5 个大 ... »

C#请求HTTPS地址的故障分析和TLS知识点总结

背景介绍 近期收到同事反馈,在C#程序中通过HTTPClient请求一个HTTPS的地址时,在本地开发环境和测试环境均能正常执行,而部署到生产环境后发生异常且稳定复现,异常提示为:【请求被中止: 未能创建 SSL/TLS 安全通道 】,而且在生产环境用浏览器访问是没问题的。 目标站点和运行环境介绍 ... »

chen943354

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# 带清除按钮的文本框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堆进行压缩回收。 »