
C#
文章平均质量分 74
月落.
希望我们都可以永远自信明媚 不会被外界干扰 走好自己的每一步
展开
-
C#中WPF和WinForms有什么区别?
总的来说,WPF提供了更现代、更灵活的用户界面构建方式,适合开发具有复杂图形和交互的应用程序。随着.NET Core和.NET 5/6的推出,WPF也得到了进一步的发展和支持,使得它在现代应用程序开发中仍然具有竞争力。这可能导致与WinForms相比更高的内存使用,因为WinForms使用的是更简单的绘图系统。:WPF应用使用XAML定义用户界面,与WinForms的UI定义相比,XAML更具有表现力和灵活性。总的来说,WPF在内存使用上可能比WinForms更高,特别是在使用其高级功能时。原创 2024-10-21 21:57:15 · 1387 阅读 · 1 评论 -
C#WPF基本概念
XAML(eXtensible Application Markup Language)是一种基于XML的标记语言,用于定义WPF应用程序的用户界面。XAML文件描述了界面的布局、控件、样式和数据绑定等。它允许开发者以声明性的方式定义UI元素,使得界面设计和逻辑代码分离,便于维护和多人协作。原创 2024-10-21 21:55:56 · 2560 阅读 · 0 评论 -
Invoke 和 InvokeRequired以及他们两个的区别
在.NET中,Invoke和是Windows Forms编程中用于确保线程安全的关键方法和属性。它们通常用在多线程环境中,以确保UI控件的更新操作在创建控件的线程上执行,避免因跨线程操作导致的异常。原创 2024-10-16 21:42:48 · 1056 阅读 · 0 评论 -
C# string字符串常用处理方法
这些方法覆盖了从简单的字符串连接到复杂的模式匹配等多种字符串处理场景。: 将对象数组连接成一个字符串,并用指定的分隔符分隔。: 使用正则表达式处理字符串,如匹配、替换、拆分等。: 检查字符串是否以指定的子字符串开始或结束。: 检查字符串是否包含指定的子字符串。: 删除字符串开头和结尾的空白字符。: 查找子字符串在字符串中的位置。: 替换字符串中的字符或子字符串。: 在字符串的指定位置插入字符串。: 用于连接两个或多个字符串。: 返回字符串的一个子字符串。: 从字符串中移除子字符串。: 检查字符串是否为。原创 2024-10-09 19:47:47 · 691 阅读 · 0 评论 -
C# 字符串(string)三个不同的处理方法:IsNullOrEmpty、IsInterned 、IsNullOrWhiteSpace
只检查null和空字符串。检查字符串是否已经被 interned。检查null、空字符串和空白字符。原创 2024-10-09 19:43:30 · 1066 阅读 · 0 评论 -
C# 串口通信的简单概述
在C#中,串口通信是指通过计算机的串行端口与外部设备(如调制解调器、鼠标、打印机、传感器等)进行数据交换的过程。串行端口(通常称为COM端口)是一种异步通信机制,它允许设备以串行的方式发送和接收数据。在串行通信中,数据位按顺序一个接一个地传输,与并行通信相比,串行通信使用的线缆更少,成本更低,但传输速度较慢。原创 2024-09-25 20:30:38 · 1228 阅读 · 0 评论 -
C#中的报文(Message)
定义协议规范:首先,你需要定义你的协议规范,包括报文的格式、命令代码、数据类型、报文长度、校验和等。创建报文类:在C#中,你可以创建一个类来表示你的报文,这个类将包含所有必要的字段。序列化和反序列化:实现报文的序列化(将对象转换为字节流)和反序列化(将字节流转换回对象)。网络通信:使用命名空间来处理TCP/UDP套接字。错误处理:实现错误处理机制,包括超时、连接失败、数据校验失败等。// 定义报文头部set;} // 命令代码set;} // 数据长度set;} // 校验和。原创 2024-09-24 09:22:53 · 743 阅读 · 0 评论 -
C# 中的NPOI 库
NPOI 是一个开源的 .NET 库,用于读写 Microsoft Office 格式的文件,如 Excel (.xls, .xlsx), Word (.doc, .docx), PowerPoint (.ppt, .pptx) 等。它提供了一个与 Microsoft Office 文件格式兼容的 API,使得开发者可以在不依赖 Microsoft Office 应用程序的情况下,处理这些文件。原创 2024-09-21 16:28:27 · 1881 阅读 · 0 评论 -
C#中DataGridView 的 CellPainting 事件的e.Handled = true
这允许你实现复杂的自定义效果,比如在单元格中绘制图像、自定义按钮或复杂的文本布局。就知道不需要再对这些单元格进行默认绘制,从而确保你的自定义绘制效果能够正确显示。:通过自定义绘制,你可以避免不必要的绘制操作,从而提高应用程序的性能。会在自定义绘制之后执行默认的绘制操作,这可能会导致绘制效果重叠或不一致。在你的代码中,如果你已经自定义了单元格的绘制,那么应该在绘制完成后设置。再次绘制这些单元格,这样可以确保单元格的显示效果符合你的预期。,这意味着你已经完全处理了单元格的绘制,不需要。进行默认的绘制操作。原创 2024-09-21 14:45:53 · 431 阅读 · 0 评论 -
C#Join()和GroupJoin的区别
取决于你的数据需求和你想要的查询结果。如果你需要保留左侧序列中的所有记录,并且想要将右侧序列中的匹配记录作为集合返回,那么应该使用。如果你只对匹配的记录感兴趣,并且不需要保留左侧序列中没有匹配项的记录,那么。是两种不同的操作,它们用于处理集合中的元素关联。在 C# 中使用 LINQ 进行查询时,如果某个订单没有匹配的客户,原创 2024-09-11 14:01:10 · 576 阅读 · 0 评论 -
C#LINQ常用扩展语句
返回数据集合中的最后一个元素或指定索引的元素,如果没有找到则返回默认值。- 返回数据集合中的第一个元素或唯一的元素,如果没有找到则返回默认值。- 跳过数据集合中的指定数量的元素或取指定数量的元素。- 将数据集合中的元素组合起来,例如计算总和。- 如果数据集合为空,则返回包含默认值的集合。- 从数据集合中选择数据或创建新的投影。- 过滤数据集合,返回满足条件的元素。- 检查数据集合中是否包含特定的元素。- 返回数据集合的并集、交集或差集。- 返回数据集合中的元素数量。- 返回数据集合中的唯一元素。原创 2024-09-11 09:02:34 · 532 阅读 · 0 评论 -
C#的LINQ语句
在 C# 中,LINQ(Language Integrated Query)是一种强大的查询技术,它允许你使用熟悉的 C# 语法来查询数据集合。LINQ 可以用于查询各种数据源,包括数组、列表、数据集、SQL数据库等。原创 2024-09-10 22:00:41 · 1438 阅读 · 0 评论 -
C# EF框架(Entity Framework)
Entity Framework (EF) 是一个对象关系映射(Object-Relational Mapping,简称ORM)框架,它允许开发者使用面向对象的方式来处理数据库操作。EF 可以自动将数据库中的表映射为应用程序中的对象,这样开发者就可以使用这些对象来进行数据库操作,而不需要编写大量的 SQL 代码。原创 2024-09-10 14:01:41 · 3758 阅读 · 0 评论 -
C# 特性(Attributes)和反射(Reflection)
特性是派生自类的类。你可以创建自定义特性,也可以使用.NET Framework提供的预定义特性。特性是派生自类的类。你可以定义自己的特性来标记程序中的元素。:标记为过时的类或成员。:仅在定义了特定符号时才执行方法。:控制自定义特性的使用方式。反射是.NET Framework中的一个特性,它允许程序在运行时(而不是在编译时)获取类型的信息。这些信息包括类型的名字、成员、基类、实现的接口、泛型参数等。原创 2024-09-07 10:05:21 · 1438 阅读 · 0 评论 -
C#中的各种画刷, PathGradientBrush、线性渐变(LinearGradientBrush)和径向渐变的区别
线性渐变:沿着直线渐变,适用于简单的背景或效果。径向渐变:从中心向外辐射,适用于圆形或球形效果。路径渐变:沿着任意路径渐变,适用于复杂形状和自定义效果。每种渐变类型都有其独特的用途和视觉效果,可以根据具体需求选择合适的画刷类型。原创 2024-09-06 14:02:55 · 2114 阅读 · 0 评论 -
C#中的Graphics类和SetQuality()自定义方法
在 C# 中,Graphics类是命名空间的一部分,它提供了一组方法和属性,用于在 Windows Forms 应用程序中进行二维绘图。Graphics对象可以绘制文本、线条、曲线、形状和图像,并可以对它们进行变换和剪辑。Graphics。原创 2024-09-05 19:18:26 · 1625 阅读 · 0 评论 -
C#Bitmap和Image之间的关系
如果你只需要处理图像的一般特性,比如加载、显示或保存,那么使用。取决于你的具体需求。如果你需要处理位图并进行像素操作,以下是一个简单的示例,展示了如何创建。原创 2024-09-05 11:58:15 · 1414 阅读 · 0 评论 -
C#中的GDI和GDI+(Graphics Device Interface Plus)图形设备接口
GDI(Graphics Device Interface)是微软Windows操作系统中的一个组件,它提供了一组API,用于在显示器或打印机等图形设备上进行图形绘制和图像处理。GDI 是 Windows 编程中用于。原创 2024-09-05 09:22:31 · 1997 阅读 · 0 评论 -
C# SetStyle()方法和双缓冲
在 C# 的 Windows Forms 应用程序中,SetStyle方法是Control类的一个方法,它用于设置控件的样式。这些样式控制控件的绘制行为和其他特性。SetStyle方法可以在运行时动态地改变控件的样式,而不需要重新创建控件。SetStyle方法的签名如下:例句truefalse在 C# 的 Windows Forms 中,是一个枚举,它定义了可以应用于控件的不同样式选项。这些样式可以用来改变控件的默认行为和外观。以下是:控件将自行绘制,而不是通过操作系统绘制。:控件将忽略消息以减少闪烁。原创 2024-09-05 06:30:00 · 1413 阅读 · 0 评论 -
C#中的控件和组件
在 C# 中,特别是在 Windows Forms 应用程序中,控件(Controls)和组件(Components)是构建用户界面和提供功能的基础元素。它们都是命名空间下的对象,但它们之间存在一些区别:一般组件派生于:Component类,所以从此类派生出的称之为组件。一般用户控件派生于:Control类或UserControl类,所以从该类派生出的称之为用户控件。他们之间的关系主要是:UserControl继承Control继承Component。原创 2024-09-04 19:40:58 · 1793 阅读 · 0 评论 -
C# 窗体中Control以及Invalidate,Update,Refresh三种重绘方法的区别
是最常用的重绘方法,它提供了灵活性,允许控件在适当的时候重绘,并且可以通过参数控制是否擦除背景。Update()通常与一起使用,以确保立即处理重绘,而不是等待其他消息。Refresh()提供了最快的重绘方式,但它可能会引起性能问题,因为它不提供优化的机会。原创 2024-09-04 16:11:45 · 2455 阅读 · 1 评论 -
C# 特性与属性的区别
用途:属性用于封装和数据访问,特性用于提供元数据或改变代码行为。存储:属性可以存储数据,特性不存储数据。声明:属性在类内部声明,作为类的成员;特性在类定义的外部声明,作为类的修饰符。运行时:属性的值在运行时可以被访问和修改;特性的信息在运行时可以通过反射(Reflection)被读取。理解这两者的区别对于正确使用 C# 语言和设计良好的 .NET 应用程序非常重要。原创 2024-09-04 14:01:54 · 722 阅读 · 0 评论 -
正则表达式(Regular Expression)
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),可以用来描述和匹配字符串的特定模式,是一种用于模式匹配和搜索文本的工具,提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。概括:正则表达式是制定特定的规则(模式),其中文本(如:字符串)满足了这种规则,表达就匹配了此种正则表达式。一般用来进行数据校验,数据匹配(爬虫),进而进行数据分析。原创 2024-08-26 19:51:34 · 1381 阅读 · 0 评论 -
SQL Server数据库 创建表,和表的增删改查
语法:delete from 表名 where 条件,一定要加where 添加,不然会删除很多,除非有备份,否则会很麻烦。格式:update 表名 set 列名=新值,列名=新值 where 条件。insert into 表名 values(列对应的值)语法:select 列名,列名 from 表名。语法:select 列名 from 表名。语法:select * from 表名。右键表,点击编辑,就可以直接添加数据。select 列对应的值 union。select 列对应的值 union。原创 2024-08-21 22:27:44 · 806 阅读 · 0 评论 -
C# asnyc和await
异步编程是一种编程范式,C#中的异步编程可以通过Thread,TheadPool,Task,async/await等来实现。await必须等待结果,没结果不能等待(无法等待void),要求:Task或其它的异步方法必须有返回值。单独使用async,不使用await,警告缺少 await运算符,不是真正的异步方法。不能等待同步代码,只能等待Task或异步方法,且异步方法必须有返回值,但Await不能等待同步代码,只能等待task或异步方法。异步方法没有返回值,不可以等待,不等待时,异步执行。原创 2024-08-20 20:29:41 · 1066 阅读 · 0 评论 -
C# 多线程
进程是操作系统进行资源分配和调度的一个独立单位,是程序的一次执行实例。每个进程都有自己独立的内存空间,至少包含一个线程(主线程)。线程是进程中的一个实体,是CPU调度和执行的单位,比进程更小的能独立运行的基本单位。线程自身基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如执行栈),但它可以与同属一个进程的其他线程共享进程所拥有的全部资源。进程拥有独立的内存空间,一个进程至少有一个线程,线程间通信不需要进行复杂的数据交换。线程共享所属进程的内存空间和资源,线程间通信可以直接访问进程的资源。原创 2024-08-17 16:05:16 · 1693 阅读 · 0 评论 -
C# 中的Math 类常用的方法
【代码】C# 的Math 类常用的方法。原创 2024-08-02 21:53:36 · 660 阅读 · 0 评论 -
C# 关键字const和readonly之间的区别
readonly字段可以在声明或构造函数中初始化。const是静态常量,在编译时的时候对常量解析,并将常量的值替换成初始化的那个值。readonly是动态常量,在运行的时候才获得,在编译期间标识为只读常量。注意:readonly时在运行时的变量,在运行第一次被赋值后,不可再变。3.readonly是实例成员,所以不同的实例可以有不同的常量值。1.可以在字段声明和构造函数中多次分配和重新分配只读字段。2.声明时可以不设置常量值,可以在构造函数中进行设置。2.常量可以是数字,布尔值,字符串,null引用。原创 2024-08-03 10:27:24 · 211 阅读 · 0 评论 -
C# 接口
接口一般公开,使用public或internal接口中可以包含类的常用成员(如:属性,方法,事件),但并不是类中的所有的成员都可以在接口中存在。接口中的成员默认就是公开的(public),public关键字必须省略。建议:接口命名一般建议使用大写I。原创 2024-08-04 17:48:31 · 873 阅读 · 0 评论 -
C# 常用文件类概述
文件、目录(文件夹)、路径输入及输出常用的类有: File,FileInfo,Directory, DirectoryInfo,(更多的请查看官方文档)1.文件相关类:File类,FileInfo类2.路径类:Path类3.盘符类:DriveInfo类。原创 2024-08-09 21:57:26 · 1237 阅读 · 0 评论 -
C# 事件(Event)
C# 事件(Event)是一种成员,用于将特定的事件通知发送给订阅者。C#语言中的事件:事件是委托的实例(个体),委托的实例不一定是事件,但事件肯定是委托的实例。(1)事件是委托实例,增加一个关键字Event,是特殊的委托(用委托生成的一个变量而异)(2)事件只能在当前类被访问,子类和类外部均不能执行类中的事件方法(安全)(3)委托和事件从本质上来说没啥区别(事件基于委托,没有委托,就没事件。:事件需要一个委托类型,委托是一种特殊的类型,定义了方法的签名。事件肯定是委托,但委托不一定是事件。原创 2024-08-13 22:13:01 · 591 阅读 · 1 评论 -
C# 委托 (delegate)
使用delegate关键字在类内部可以定义,在类外部也可以,在方法中不能定义//定义委托,观察一下:委托和方法的形式的区别:a.没有方法体 b.多个delegate关键字。//可以没有返回,可以没有参数。原创 2024-08-13 20:14:34 · 1022 阅读 · 0 评论 -
C#重载(Overload)和重写(Overrid)的区别
重载是在同一个类(本类)中定义多个同名的方法,但参数列表不同,列表不同指的是参数的数量,类型或顺序不同。注意:方法名必须一样,类型,个数,顺序至少有一个不一样,但对返回值和修饰符没有要求。原创 2024-08-02 21:14:43 · 375 阅读 · 0 评论 -
C# 集合(Collections),数组与集合的区别,集合与列表的区别
数组是集合,但集合不一定是数组。数组存储的类型不限制。集合存储的类型只能是引用类型。数组(一般是相同数据类型,但object[]数组元素类型可以不同)的元素按一定顺序排列集合。数组在添加,插入,删除等比方便,说明数组不是链表,但数组的读取(查询)速度比集合快。集合是线性表,在插入,添加,删除数据时比较方面,性能比数组高。数组实现了6个接口,前4个接口很重要public interface IList :ICollection,IEnumerable 说明列表也是集合的一种。原创 2024-07-30 22:05:09 · 1296 阅读 · 0 评论 -
C# 数组的API
但根据元素的类型,也可以设置数组中某个范围的元素为零、为 false 或者为 null。和其他对象的删除不太一样,数组Clear只能修改元素(项),数组一旦创建,长度固定。原创 2024-07-27 19:23:55 · 278 阅读 · 0 评论 -
C# 数组(Array)
本身是一种类型(引用类型),但它中存储的元素(项)也有数据类型。数组分为一维数组,多维数组,交错数组,隐式类型的数组。原创 2024-07-26 20:38:37 · 361 阅读 · 0 评论 -
C# Random类
C# Random类(生成一个随机数)原创 2024-07-26 17:41:53 · 263 阅读 · 0 评论 -
C#隐式,显示类型转换
2.将较大的字面量显示类型转换为一个较小的类型,赋值给较小的类型变量,会被编译器检测出来。2.格式:目标数据类型 变量名=(目标数据类型)需要转换的数据或者变量。1.含义:将取值范围较大的数值或者变量,赋值给一个取值范围较小的变量。1.浮点数转化为整数,将小数部分直接抛弃(截断)原创 2024-07-25 17:42:02 · 194 阅读 · 0 评论 -
C#泛型委托,约束
泛型的委托有很多,但掌握常见的泛型委托应用即可委托可以定义它自己的类型参数。引用泛型委托的代码可以指定类型参数以创建封闭式构造类型。常见的委托有Action,Func,Predicate,Converter等等。Action特点:没有参数,没有返回值。只要没有参数,没有返回值的方法都可以满足委托。Action泛型委托,in是关键字,转到定义查看Func泛型委托,out是关键字,转到定义查看Predicate泛型委托,in是关键字,转到定义查看。原创 2024-08-12 21:35:08 · 741 阅读 · 0 评论 -
C# 静态方法和实例方法
在调用方法的时候,静态方法直接调用就可以,但实例方法需要先实例化一个对象,如果不实例化直接调用就会报错。静态字段的两个常见用途是保留实例化的对象数的计数,或是存储必须在所有实例间共享的值。静态方法可以进行重载,但不能进行替代,因为它们属于类,而不属于类的任何实例。一、静态成员,实例成员,静态方法,实例方法。实例成员就是没有被static修饰的字段;实例方法就是没有被static修饰的方法;静态成员就是用static修饰的字段;静态方法就是用static修饰的方法;原创 2024-08-11 21:12:30 · 341 阅读 · 0 评论