C#
文章平均质量分 58
老刘编程
每周分享原创编程技术文章
展开
-
C#泛型(Generic)
C#泛型介绍和使用方法原创 2022-04-30 20:50:13 · 387 阅读 · 0 评论 -
C#入门(二)C#控制台基础
目录控制台基础输出控制台基础新建一个控制台应用输出原创 2021-07-08 14:21:00 · 1982 阅读 · 0 评论 -
C#入门(一)安装Visual Studio 2019
下载安装文件下载网址:点击下载选择下载Visual Studio,建议选择社区版,因为是免费的,当然也可以选择其他版本,但都是收费的。转到如下网站,保存文件:下载安装程序单击“继续”,等待安装程序完成安装。安装Visual Studio 2019VS 2019 支持 C/C++ 、C#、F#、Visual Basic 等开发语言根据需要选择选择语言包(默认中文简体,无特殊需要可以不更改)。选择安装位置最终点击 “安装” 按钮,开始漫长的等待点击重启即可。...原创 2021-05-16 09:16:00 · 2870 阅读 · 0 评论 -
C# 字符转义
正则表达式 是一种匹配输入文本的模式。下面列出了用于定义正则表达式的各种类别的字符、运算符和结构。字符转义字符类定位点分组构造限定符反向引用构造备用构造替换杂项构造字符转义...原创 2021-05-15 18:00:17 · 1842 阅读 · 0 评论 -
C#利用SqlDataReader读取SQL Server数据表
目录介绍属性方法典型事例注释介绍可以用SqlDataReader类对象从SQL Server数据库中读取行DataReader对象允许你以向前的,只读的方式读取数据,有时候DataReader对象也称为消软管游标。DataReader对象采用了一种简化的数据读取方式,但是提高了性能的同时也牺牲了很多特性。例如在DataSet中支持的排序,分页等功能。属性属性介绍Connection获取与 SqlConnection 关联的 SqlDataReader。HasRows获原创 2021-05-09 09:24:21 · 12685 阅读 · 4 评论 -
C# Excel数据合并
今天讲一个用C#实现Excel数据合并源码下载地址:https://download.csdn.net/download/ssssswsrjhtdj/18398536预览效果:核心代码:“Excel数据合并”按钮点击代码Stopwatch sw = new Stopwatch(); sw.Start(); //dataGridView1.DataSource = NPOIExcel.ExcelToDataTable("电脑统计表.xlsx",原创 2021-05-05 20:13:33 · 524 阅读 · 0 评论 -
C#截图功能
Windows 上,屏幕截图一般是调用 win32 api 完成的,如果 C# 想实现截图功能,就需要封装相关 api。在 Windows 上,主要图形接口有 GDI 和 DirectX。GDI 接口比较灵活,可以截取指定窗口,哪怕窗口被遮挡或位于显示区域外,但兼容性较低,无法截取 DX 接口输出的画面。DirectX 是高性能图形接口(当然还有其他功能,与本文无关,忽略不计),主要作为游戏图形接口使用,灵活性较低,无法指定截取特定窗口(或者只是我不会吧),但是兼容性较高,可以截取任何输出到屏幕的内容,本文原创 2021-04-09 21:59:19 · 4273 阅读 · 0 评论 -
C# GDI+类似windows画图的工具
目录功能梳理部分代码实现绘图工具的功能实现手动调节画布大小功能梳理主要实现功能:画直线,矩形,橡皮,圆形,切换颜色,打开图片,保存图片,清除图片,手动调节画布大小;软件刚启动时,为一张空白画布,我们可以直接在画布上绘画,也可以通过菜单中的“打开”,导入一张图片,然后我们就可以在这张图片上进行绘制。由于代码过多,在这里只简要介绍下制作步骤,大家可以下载. 1.对整个界面进行布局. 2.实现绘图工具的功能 3.实现颜色拾取的功能,这里我们直接拿上次写的自定义控件来用. 4.实现菜单功能原创 2021-04-09 21:41:21 · 507 阅读 · 0 评论 -
C#简单绘图(2)
目录Pen(笔)Brush(刷子)坐标轴变换Pen(笔)Pen的属性主要有: Color(颜色),DashCap(短划线终点形状),DashStyle(虚线样式),EndCap(线尾形状), StartCap(线头形状),Width(粗细)等.我们可以用Pen 来画虚线,带箭头的直线等等如:Pen p = new Pen(Color.Red, 5);//设置笔的粗细为,颜色为红色Graphics g = this.CreateGraphics();//画虚线p.DashStyle =原创 2021-04-09 21:26:23 · 587 阅读 · 0 评论 -
C#简单绘图(1)
今天来实现一下C#中使用GDI+简单绘图目录什么是GDI+开始绘制首先准备一个画板创建笔画运行效果什么是GDI+Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System . Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Fon原创 2021-04-09 21:15:46 · 2932 阅读 · 0 评论 -
C# DevExpress实现仿office2016界面
office大家一定很熟悉,如何模仿office ribbon风格呢?创建项目新建界面新建项选择Devexpress v20.2 templa galler一个窗体就创建好了设置窗体原创 2021-04-09 20:04:09 · 1129 阅读 · 0 评论 -
C# DevExpress安装破译
软件下载地址:https://download.csdn.net/download/ssssswsrjhtdj/16594535目录软件介绍安装破译教程软件介绍DevExpress20.1.3是一款功能丰富的.NET控件库,提供很多编程人员需要的控件,方便在程序开发中使用,可用于ASP.NET、MVC、WPF、Windows 、Web前端、WinForms、Web报表等开发方面,对于程序开发人员来说是非常不错的编程辅助软件。它能够使用户随意调用需要的各种控件,帮助用户快速开发出完美、强大的应用程序,为原创 2021-04-09 19:20:06 · 3163 阅读 · 0 评论 -
C# 预处理器指令
#if如果 C# 编译器遇到 #if 指令,最终是 #endif 指令,则仅当定义指定的符号时,它才编译这些指令之间的代码。有一个示例,当在Debug调试程序时输出调试模式,否则不输出:#if DEBUG Console.WriteLine("Debug version");#endif仅可使用运算符 ==(相等)和 !=(不相等)测试布尔值 true 或 false。#if 以及 #else、#elif、#endif、#define 和 #undef 指令,允许基于是否存在一个或多个符原创 2021-02-28 15:20:38 · 104 阅读 · 0 评论 -
C# REST客户端
创建应用程序第一步是新建应用程序。 打开命令提示符,然后新建应用程序的目录。 将新建的目录设为当前目录。 在控制台窗口中输入以下命令,创建应用程序:dotnet new console --name WebAPIClient需要将计算机设置为运行 .Net Core。添加新的依赖项将需要此应用程序的 System.Runtime.Serialization.Json 包。 通过运行以下 .NET CLI 命令,将其添加到项目:dotnet add package System.Text.J原创 2021-02-27 10:33:00 · 828 阅读 · 0 评论 -
C# 运算符和表达式
概述C# 提供了许多运算符。 其中许多都受到内置类型的支持,可用于对这些类型的值执行基本操作。C#中有算术运算符、比较运算符、布尔逻辑运算符、位运算符和移位运算符、相等运算符在下面的代码中,表达式的示例位于赋值的右侧:int a, b, c;a = 7;b = a;c = b++;b = a + b * c;c = a >= 100 ? b : c / 10;a = (int)Math.Sqrt(b * b + c * c);string s = "字符串字面";char l原创 2021-02-27 09:52:59 · 196 阅读 · 0 评论 -
C#中的继承
继承是面向对象的编程语言的一项功能,可方便你定义提供特定功能(数据和行为)的基类,并定义继承或重写此功能的派生类。什么是继承?继承是面向对象的编程的一种基本特性。 借助继承,能够定义可重用(继承)、扩展或修改父类行为的子类。 成员被继承的类称为基类。 继承基类成员的类称为派生类。C#只支持单一继承。 也就是说,类只能继承自一个类。 不过,继承是可传递的。这样一来,就可以为一组类型定义继承层次结构。 换言之,类型 4 可继承自类型 3,其中类型 3 继承自类型 2,类型 2 又继承自基类类型 1。 由于原创 2021-02-26 21:42:56 · 246 阅读 · 0 评论 -
C#语言集成查询
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。 查询表达式采用声明性查询语法编写而成。 使用查询语法,可以用最少的代码对数据源执行筛选、排序和分组操作。 可使用相同的基本查询表达式模式来查询和转换 SQL Server 数据库、ADO .NET 数据集、XML 文档和流以及 .NET 集合中的数据等。示例原创 2021-02-26 16:30:47 · 210 阅读 · 0 评论 -
C#锁屏
今天来讲讲如何实现C#锁屏界面设计(注意添加两个计时器)核心代码Program.csstatic class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(原创 2021-02-25 20:30:22 · 1472 阅读 · 1 评论 -
C#索引器
索引器类似于属性。 很多时候,创建索引器与创建属性所使用的编程语言特性是一样的。 索引器使属性可以被索引:使用一个或多个参数引用的属性。 这些参数为某些值集合提供索引。语法可以通过变量名和方括号访问索引器。 将索引器参数放在方括号内:var item = someObject["key"];someObject["AnotherKey"] = item;可以看到属性语法和索引器语法之间的关系。 此类比在索引器的大部分语法规则中进行。 索引器可以使用任何有效的访问修饰符(public、protec原创 2021-02-25 16:57:10 · 159 阅读 · 0 评论 -
C#模式匹配
模式匹配是什么?模式可测试值是否具有特定形状 ,并且可以在值具有匹配形状时从值提取 信息。 模式匹配为当前已使用的算法提供了更简洁的语法。 你已使用现有语法创建了模式匹配算法。 编写了测试值的 if 或 switch 语句。 随后,在这些语句匹配时,可从该值提取并使用信息。 新的语法元素是你已熟悉的语句的扩展:is 和 switch。 这些新扩展将测试值与提取该信息合并在一起。每个几何形状的简单纯数据定义对初学者来说,抽象形状定义以及添加不同的特定形状类比较难,所以接下来来写一个每个几何形状的简单纯数原创 2021-02-25 16:37:25 · 342 阅读 · 0 评论 -
C#获取当前时间
我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间。DateTime.Now.ToString();DateTime.Now.ToString():返回值:2021-2-25 20:02:10DateTime.Now.ToLongDateString().ToString(); DateTime.Now.ToLongDateString().ToString():返回值:2021年2月25日DateTime.Now.ToShortD原创 2021-02-25 14:19:36 · 8472 阅读 · 0 评论 -
C#弃元
弃元一种在应用程序代码中人为取消使用的占位符变量。 弃元相当于未赋值的变量;它们没有值。 弃元将意图传达给编译器和其他读取代码的文件:你打算忽略表达式的结果。 你可能需要忽略表达式的结果、元组表达式的一个或多个成员、方法的 out 参数或模式匹配表达式的目标。注意:从 C# 7.0 开始,才支持弃元因为只有一个弃元变量,甚至不为该变量分配存储空间。 所以,弃元可以减少内存分配。 弃元使代码意图更加明确。 它们可以增强其可读性和可维护性。通过将下划线 (_) 赋给一个变量作为其变量名,指示该变量为一个原创 2021-02-25 13:32:55 · 781 阅读 · 0 评论 -
C#获取主机地址信息
新建一个项目,叫IPAdd窗体设计命名空间首先添加命名空间:using System.Net;源代码label2.Text = string.Empty;System.Net.IPAddress[] ips = Dns.GetHostAddresses(textBox1.Text); foreach(System.Net.IPAddress ip in ips){ label2.Text = "网络协议地址:" + ip.Address + "\n原创 2021-02-25 13:11:57 · 159 阅读 · 1 评论 -
C#迭代器
概述编写的几乎每个程序都需要循环访问集合,所以需要编写代码来检查集合中的每一项。还需创建迭代器方法。 这些方法可用于:•对集合中的每个项执行操作。•枚举自定义集合。•扩展 LINQ 或其他库。•创建数据管道,以便数据通过迭代器方法在管道中有效流动。C# 语言提供了适用于这两种方案的功能。 本文概述了这些功能。使用迭代器方法的枚举源借助 C# 语言的另一个强大功能,能够生成创建枚举源的方法。 这些方法称为“迭代器方法” 。可编写此方法以生成从 0 到 9 的整数序列:public IEn原创 2021-02-25 12:04:23 · 138 阅读 · 0 评论 -
C#生成随机汉字
欢迎阅读老刘讲编程的文章,今天来讲如何生成随机汉字今天吧它制成成了输入速度挑战界面设计界面截图如下核心代码方法CreateRegionCode:public static object[] CreateRegionCode(int strlength) { //定义一个字符串数组储存汉字编码的组成元素 string[] rBase = new String[16] { "0", "1", "2", "3", "4", "5", "原创 2021-02-25 11:34:07 · 634 阅读 · 0 评论 -
C#拖动无边框窗体
设计新建或打开一个窗体应用程序点击窗体属性设置,把边框样式设置为 None添加一个Panel点击Panel1事件(闪电标志)中MouseDown代码[DllImport("user32.dll")]//拖动无窗体的控件 public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPt原创 2021-02-25 11:34:30 · 142 阅读 · 0 评论 -
C#根据银行卡号获取银行
你好,欢迎阅读我的文章,今天来分享一个根据银行卡号获取银行的项目。欢迎购买我的付费专栏 1:高级C#学习 2:网络开始开发在VS2019(或2008以上的版本)新建一个控制台应用项目,叫BankInfoDemo,如图1添加一个类,名为BankInfo.cs核心代码Program.cs:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Thr原创 2021-02-24 17:03:28 · 822 阅读 · 0 评论 -
C#调用摄像头
添加DLL下载地址:https://download.csdn.net/download/ssssswsrjhtdj/15449179然后添加引用(不包括EXE文件)添加后拖入工具箱,然后添加videoSourcePlayer控件源代码先添加引用:using System;using System.Drawing;using System.Drawing.Imaging;using System.Text.RegularExpressions;using System.Wi原创 2021-02-24 14:21:26 · 1994 阅读 · 0 评论 -
C#修改注册表
程序设计和运行环境以及要准备的工作I>Windows7以上II>VS2019(或2017)命名空间c#修改注册表,需要引用Microsoft.Win32命名空间using Microsoft.Win32;编写时,要用到RegistryKey示例代码以下从‘读’‘写’‘删除’‘判断’四个事例实现对注册表的简单操作1.读取指定名称的注册表的值private string GetRegistData(string name){ string registData;原创 2021-02-24 13:42:20 · 834 阅读 · 0 评论 -
C#下载网络图片
界面设计源代码在确定按钮单击事件中添加代码:String URL = textBox1.Text;HttpWebRequest myrq = (HttpWebRequest)WebRequest.Create(URL); myrq.KeepAlive = false; myrq.Timeout = 30 * 1000; //超时时间 myrq.Method = "Get"; //请求方式 myrq.Accept = "text/html,application/xhtml+xml,a原创 2021-02-24 13:16:50 · 1049 阅读 · 0 评论 -
C#面试题
C#面试题1.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么?答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。2.什么是事务?SQL中什么是锁?答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么原创 2021-02-24 12:24:49 · 167 阅读 · 0 评论 -
C#接口
概述接口包含非抽象类或结构必须实现的一组相关功能的定义。 接口可以定义 static 方法,此类方法必须具有实现。 从 C# 8.0 开始,接口可为成员定义默认实现。 接口不能声明实例数据,如字段、自动实现的属性或类似属性的事件。例如,使用接口可以在类中包括来自多个源的行为。 该功能在 C# 中十分重要,因为该语言不支持类的多重继承。 此外,如果要模拟结构的继承,也必须使用接口,因为它们无法实际从另一个结构或类继承。可使用 interface 关键字定义接口,如以下示例所示。interface IE原创 2021-02-24 11:20:55 · 346 阅读 · 0 评论 -
C#实现记事本
今天我用C#编了一个记事本,效果如下核心代码打开TXTopenFileDialog1.Filter = "文本文件(*.txt)|*.txt"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { string path = openFileDialog1.FileName; //用指定的字符编码,初始化一个新实例原创 2021-02-24 11:08:45 · 300 阅读 · 2 评论 -
C#异步编程
异步模型概述异步编程的核心是 Task 和 Task 对象,这两个对象对异步操作建模。 在大多数情况下模型十分简单:•对于 I/O 绑定代码,等待一个在 async 方法中返回 Task 或 Task 的操作。•对于 CPU 绑定代码,等待一个使用 Task.Run 方法在后台线程启动的操作。await 关键字有这奇妙的作用。 它控制执行 await 的方法的调用方,且它最终允许 UI 具有响应性或服务具有灵活性。 虽然有方法可处理 async 和 await 以外的异步代码,但本文重点介绍语言级构原创 2021-02-24 11:06:20 · 255 阅读 · 0 评论 -
C#制作视频播放器(Windows Media Player方法)
本文利用C# 调用Windows自带的Windows Media Player 打造一款属于自己的音乐播放器。概述Windows Media Player是微软公司出品的一款免费的播放器,属于Microsoft Windows的一个组件,通常简称"WMP",支持通过插件增强功能。版本Windows Media Player 12 随 Windows 7及以上提供。可以播放MP3,WMA,WAV等音频文件。本文音乐播放器,主要是MP3文件。涉及知识点1 加载COM组件Windows Media Pla原创 2021-02-24 11:09:49 · 2495 阅读 · 0 评论 -
C#实现视频播放器
C#实现视频播放器概述使用C#实现播放器,有以下几种方式:1、使用MediaPlayer ActiveX控件;2、使用VLC ActiveX控件3、使用LIB VLC库4、使用FFMPEG库第1、2种,都一定依赖客户端环境。如果客户端较少,可以人工维护的话,可以考虑。第4种,使用ffmpeg,就拥有了更加底层的api了,此时可以实现更加强大的功能。并且它是跨平台的,对于移动平台的音视频开发也是非常有帮助的。今天我们就是采用第3种方式,它不依赖客户端环境,在Github上也有比较完善的对它的封原创 2021-02-23 20:14:05 · 2969 阅读 · 0 评论 -
C#简单浏览器实现
C#简单浏览器实现概述下面主要是利用利用上面所述类的方法获取相应URL的应答内容,通过赋值数据流,再从字节流中读取内容赋值给webBrowser控件中实现最简单的浏览器。窗体设计界面中添加label1并吧Text设为”输入网址:“,添加一个textBox作为输入的网址,添加button1其text属性为”浏览“。最重要的是添加一个webBrower控件,该控件指"允许用户在该控件中浏览网页",并且设置其Anchor属性(定义控件绑定到容器边缘)为Top、Bottom、Left、Right。这样点击全屏原创 2021-02-23 19:01:21 · 1066 阅读 · 0 评论 -
C# ListView简单示例
ListView是用于显示数据的,先在窗体中拉一个lisview控件,还有一些新增、修改、删除、查询按钮和文本框,控件名称为listview,按钮为btnInsert,btnUpate,btnDeleteOne,btnDelete,btnSelect,文本框的名称为txtName,txtSex,txtPhone,txtAddress,设计如下图所示:把listview的View改为Details,添加几项:具体代码using System;using System.Collections.Gene原创 2021-02-23 18:46:10 · 3889 阅读 · 1 评论 -
C#系统登录功能实现窗体
C#系统登录功能实现窗体:一般的登陆界面,都是利用用户名和密码在数据库的匹配关系,来实现登陆的跳转功能。首先介绍用户数据表的设计。SQL数据表:其中ID列需要设置好增量标识,随着用户的增加,ID的值递增,避免重复。C#中对数据库的操作类class DataBase { public static string Login_ID = ""; public static string Login_Name = ""; public stat原创 2021-02-23 18:36:35 · 4326 阅读 · 0 评论 -
C# 网络编程之Tcp实现客户端和服务器聊天
最近使用Socket网络套接字编程中,在同步与异步通讯中客户端与服务器总是无法响应,但在学习Tcp协议编程中完成了通讯聊天功能,下面简单讲讲我最近学到的及Tcp聊天的源代码及详细注释。Tcp协议是一个传输层的协议,在Tcp协议编程中它通常使用的是3个类,其命名空间为System.Net.Sockets:1.TcpListener:基于TCP协议服务端开发,监听IP地址和端口号是否连接。该类常用的方法有Start()开始监听、AcceptSocket()返回套接字接受连接请求、AcceptTcpClie原创 2021-02-23 17:36:40 · 356 阅读 · 0 评论