- 博客(30)
- 收藏
- 关注
原创 C# EF框架(Entity Framework)
Entity Framework (EF) 是一个对象关系映射(Object-Relational Mapping,简称ORM)框架,它允许开发者使用面向对象的方式来处理数据库操作。EF 可以自动将数据库中的表映射为应用程序中的对象,这样开发者就可以使用这些对象来进行数据库操作,而不需要编写大量的 SQL 代码。
2024-09-10 14:01:41
473
原创 C# 特性(Attributes)和反射(Reflection)
特性是派生自类的类。你可以创建自定义特性,也可以使用.NET Framework提供的预定义特性。特性是派生自类的类。你可以定义自己的特性来标记程序中的元素。:标记为过时的类或成员。:仅在定义了特定符号时才执行方法。:控制自定义特性的使用方式。反射是.NET Framework中的一个特性,它允许程序在运行时(而不是在编译时)获取类型的信息。这些信息包括类型的名字、成员、基类、实现的接口、泛型参数等。
2024-09-07 10:05:21
1122
原创 C#中的各种画刷, PathGradientBrush、线性渐变(LinearGradientBrush)和径向渐变的区别
线性渐变:沿着直线渐变,适用于简单的背景或效果。径向渐变:从中心向外辐射,适用于圆形或球形效果。路径渐变:沿着任意路径渐变,适用于复杂形状和自定义效果。每种渐变类型都有其独特的用途和视觉效果,可以根据具体需求选择合适的画刷类型。
2024-09-06 14:02:55
1248
原创 C#中的Graphics类和SetQuality()自定义方法
在 C# 中,Graphics类是命名空间的一部分,它提供了一组方法和属性,用于在 Windows Forms 应用程序中进行二维绘图。Graphics对象可以绘制文本、线条、曲线、形状和图像,并可以对它们进行变换和剪辑。Graphics。
2024-09-05 19:18:26
1040
原创 C#Bitmap和Image之间的关系
如果你只需要处理图像的一般特性,比如加载、显示或保存,那么使用。取决于你的具体需求。如果你需要处理位图并进行像素操作,以下是一个简单的示例,展示了如何创建。
2024-09-05 11:58:15
739
原创 C#中的GDI和GDI+(Graphics Device Interface Plus)图形设备接口
GDI(Graphics Device Interface)是微软Windows操作系统中的一个组件,它提供了一组API,用于在显示器或打印机等图形设备上进行图形绘制和图像处理。GDI 是 Windows 编程中用于。
2024-09-05 09:22:31
1261
原创 C# SetStyle()方法和双缓冲
在 C# 的 Windows Forms 应用程序中,SetStyle方法是Control类的一个方法,它用于设置控件的样式。这些样式控制控件的绘制行为和其他特性。SetStyle方法可以在运行时动态地改变控件的样式,而不需要重新创建控件。SetStyle方法的签名如下:例句truefalse在 C# 的 Windows Forms 中,是一个枚举,它定义了可以应用于控件的不同样式选项。这些样式可以用来改变控件的默认行为和外观。以下是:控件将自行绘制,而不是通过操作系统绘制。:控件将忽略消息以减少闪烁。
2024-09-05 06:30:00
1008
原创 C#中的控件和组件
在 C# 中,特别是在 Windows Forms 应用程序中,控件(Controls)和组件(Components)是构建用户界面和提供功能的基础元素。它们都是命名空间下的对象,但它们之间存在一些区别:一般组件派生于:Component类,所以从此类派生出的称之为组件。一般用户控件派生于:Control类或UserControl类,所以从该类派生出的称之为用户控件。他们之间的关系主要是:UserControl继承Control继承Component。
2024-09-04 19:40:58
997
原创 C# 窗体中Control以及Invalidate,Update,Refresh三种重绘方法的区别
是最常用的重绘方法,它提供了灵活性,允许控件在适当的时候重绘,并且可以通过参数控制是否擦除背景。Update()通常与一起使用,以确保立即处理重绘,而不是等待其他消息。Refresh()提供了最快的重绘方式,但它可能会引起性能问题,因为它不提供优化的机会。
2024-09-04 16:11:45
1312
1
原创 C# 特性与属性的区别
用途:属性用于封装和数据访问,特性用于提供元数据或改变代码行为。存储:属性可以存储数据,特性不存储数据。声明:属性在类内部声明,作为类的成员;特性在类定义的外部声明,作为类的修饰符。运行时:属性的值在运行时可以被访问和修改;特性的信息在运行时可以通过反射(Reflection)被读取。理解这两者的区别对于正确使用 C# 语言和设计良好的 .NET 应用程序非常重要。
2024-09-04 14:01:54
582
原创 SQL Server 中 事务( Transaction )
在 SQL Server 中,(事务)是一种处理单位,它由一系列操作组成,这些操作要么全部成功,要么全部失败。事务是数据库管理系统中的一个核心概念,用于确保数据的完整性和一致性。
2024-09-04 09:02:45
1137
原创 正则表达式(Regular Expression)
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),可以用来描述和匹配字符串的特定模式,是一种用于模式匹配和搜索文本的工具,提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。概括:正则表达式是制定特定的规则(模式),其中文本(如:字符串)满足了这种规则,表达就匹配了此种正则表达式。一般用来进行数据校验,数据匹配(爬虫),进而进行数据分析。
2024-08-26 19:51:34
1293
原创 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
653
原创 C# asnyc和await
异步编程是一种编程范式,C#中的异步编程可以通过Thread,TheadPool,Task,async/await等来实现。await必须等待结果,没结果不能等待(无法等待void),要求:Task或其它的异步方法必须有返回值。单独使用async,不使用await,警告缺少 await运算符,不是真正的异步方法。不能等待同步代码,只能等待Task或异步方法,且异步方法必须有返回值,但Await不能等待同步代码,只能等待task或异步方法。异步方法没有返回值,不可以等待,不等待时,异步执行。
2024-08-20 20:29:41
947
原创 C# 多线程
进程是操作系统进行资源分配和调度的一个独立单位,是程序的一次执行实例。每个进程都有自己独立的内存空间,至少包含一个线程(主线程)。线程是进程中的一个实体,是CPU调度和执行的单位,比进程更小的能独立运行的基本单位。线程自身基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如执行栈),但它可以与同属一个进程的其他线程共享进程所拥有的全部资源。进程拥有独立的内存空间,一个进程至少有一个线程,线程间通信不需要进行复杂的数据交换。线程共享所属进程的内存空间和资源,线程间通信可以直接访问进程的资源。
2024-08-17 16:05:16
1453
原创 C# 事件(Event)
C# 事件(Event)是一种成员,用于将特定的事件通知发送给订阅者。C#语言中的事件:事件是委托的实例(个体),委托的实例不一定是事件,但事件肯定是委托的实例。(1)事件是委托实例,增加一个关键字Event,是特殊的委托(用委托生成的一个变量而异)(2)事件只能在当前类被访问,子类和类外部均不能执行类中的事件方法(安全)(3)委托和事件从本质上来说没啥区别(事件基于委托,没有委托,就没事件。:事件需要一个委托类型,委托是一种特殊的类型,定义了方法的签名。事件肯定是委托,但委托不一定是事件。
2024-08-13 22:13:01
452
1
原创 C# 委托 (delegate)
使用delegate关键字在类内部可以定义,在类外部也可以,在方法中不能定义//定义委托,观察一下:委托和方法的形式的区别:a.没有方法体 b.多个delegate关键字。//可以没有返回,可以没有参数。
2024-08-13 20:14:34
951
原创 C#泛型委托,约束
泛型的委托有很多,但掌握常见的泛型委托应用即可委托可以定义它自己的类型参数。引用泛型委托的代码可以指定类型参数以创建封闭式构造类型。常见的委托有Action,Func,Predicate,Converter等等。Action特点:没有参数,没有返回值。只要没有参数,没有返回值的方法都可以满足委托。Action泛型委托,in是关键字,转到定义查看Func泛型委托,out是关键字,转到定义查看Predicate泛型委托,in是关键字,转到定义查看。
2024-08-12 21:35:08
675
原创 C# 静态方法和实例方法
在调用方法的时候,静态方法直接调用就可以,但实例方法需要先实例化一个对象,如果不实例化直接调用就会报错。静态字段的两个常见用途是保留实例化的对象数的计数,或是存储必须在所有实例间共享的值。静态方法可以进行重载,但不能进行替代,因为它们属于类,而不属于类的任何实例。一、静态成员,实例成员,静态方法,实例方法。实例成员就是没有被static修饰的字段;实例方法就是没有被static修饰的方法;静态成员就是用static修饰的字段;静态方法就是用static修饰的方法;
2024-08-11 21:12:30
263
原创 C# 泛型简单概括
泛型定义语法格式:或 其中T,K指未知类型。语句:Class Show使用:Show show=new Show();泛型定义时,是延迟声明的:即定义的时候没有指定具体的参数类型,把参数类型的声明推迟到了调用的时候才指定参数类型。
2024-08-10 19:26:12
1271
原创 C# 常用文件类概述
文件、目录(文件夹)、路径输入及输出常用的类有: File,FileInfo,Directory, DirectoryInfo,(更多的请查看官方文档)1.文件相关类:File类,FileInfo类2.路径类:Path类3.盘符类:DriveInfo类。
2024-08-09 21:57:26
1099
原创 C# 接口
接口一般公开,使用public或internal接口中可以包含类的常用成员(如:属性,方法,事件),但并不是类中的所有的成员都可以在接口中存在。接口中的成员默认就是公开的(public),public关键字必须省略。建议:接口命名一般建议使用大写I。
2024-08-04 17:48:31
831
原创 C# 关键字const和readonly之间的区别
readonly字段可以在声明或构造函数中初始化。const是静态常量,在编译时的时候对常量解析,并将常量的值替换成初始化的那个值。readonly是动态常量,在运行的时候才获得,在编译期间标识为只读常量。注意:readonly时在运行时的变量,在运行第一次被赋值后,不可再变。3.readonly是实例成员,所以不同的实例可以有不同的常量值。1.可以在字段声明和构造函数中多次分配和重新分配只读字段。2.声明时可以不设置常量值,可以在构造函数中进行设置。2.常量可以是数字,布尔值,字符串,null引用。
2024-08-03 10:27:24
153
原创 C#重载(Overload)和重写(Overrid)的区别
重载是在同一个类(本类)中定义多个同名的方法,但参数列表不同,列表不同指的是参数的数量,类型或顺序不同。注意:方法名必须一样,类型,个数,顺序至少有一个不一样,但对返回值和修饰符没有要求。
2024-08-02 21:14:43
342
原创 C# 集合(Collections),数组与集合的区别,集合与列表的区别
数组是集合,但集合不一定是数组。数组存储的类型不限制。集合存储的类型只能是引用类型。数组(一般是相同数据类型,但object[]数组元素类型可以不同)的元素按一定顺序排列集合。数组在添加,插入,删除等比方便,说明数组不是链表,但数组的读取(查询)速度比集合快。集合是线性表,在插入,添加,删除数据时比较方面,性能比数组高。数组实现了6个接口,前4个接口很重要public interface IList :ICollection,IEnumerable 说明列表也是集合的一种。
2024-07-30 22:05:09
1029
原创 C# 数组的API
但根据元素的类型,也可以设置数组中某个范围的元素为零、为 false 或者为 null。和其他对象的删除不太一样,数组Clear只能修改元素(项),数组一旦创建,长度固定。
2024-07-27 19:23:55
239
原创 C#隐式,显示类型转换
2.将较大的字面量显示类型转换为一个较小的类型,赋值给较小的类型变量,会被编译器检测出来。2.格式:目标数据类型 变量名=(目标数据类型)需要转换的数据或者变量。1.含义:将取值范围较大的数值或者变量,赋值给一个取值范围较小的变量。1.浮点数转化为整数,将小数部分直接抛弃(截断)
2024-07-25 17:42:02
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人