自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 数据库中常见的链接方式

内连接(Inner Join):内连接是指根据两张表中的共同字段进行连接,并选取两个表中匹配的记录。右连接(Right Join):右连接和左连接相反,以右表中的记录为基础,匹配左表中的记录。如果右表中有记录在左表中没有匹配到,则该记录的左表字段值为 NULL。全连接(Full Outer Join):全连接是指包括左表和右表中的所有记录,并在匹配时如果没有对应的记录则填充 NULL。因此,全连接是左连接和右连接的结合。左连接(Left Join):左连接是指以左表中的所有记录为基础,匹配右表中的记录。

2023-06-05 13:55:15 977

原创 xml语言是什么,什么情况下需要用到

XML(可扩展标记语言)是一种用于描述数据的格式,以标签为基础,类似于 HTML。但与 HTML 不同的是,XML 不是用于显示网页,而是用于传输和存储数据。XML 通过提供一种通用语言来描述结构化数据,从而使不同的应用程序和系统之间可以更容易地交换数据。XML 文件由标签构成,标签具有开始标签和结束标签,以及标签之间的内容。例如,如果两个系统之间需要传输和共享数据,可以使用 XML 格式来描述数据,并通过一些数据交换格式(如 SOAP、RESTful API)来交换数据。

2023-05-26 13:25:50 276

原创 集合和数组的区别

数组是一种线性数据结构,包含一组连续的元素,可以通过下标来快速访问其中的任何一个元素。数组有固定的大小,需要在创建时指定元素数量,在插入或删除元素时会涉及到数据的搬移,因此修改操作的效率较低。但是,由于数组是连续内存的,因此在访问元素时效率较高。集合是一种无序的、没有重复元素的数据结构,可以快速地进行添加、删除和查找操作。集合的大小是动态的,可以根据需要动态调整。由于集合没有像数组那样的下标,因此只能使用遍历来访问其中的元素。集合的实现方式有多种,常用的有哈希表、红黑树、并查集等。

2023-05-25 13:07:56 194

原创 查询语句并返回id

【代码】查询语句并返回id。

2023-05-12 14:17:40 216

原创 多线程的使用

多线程指的是同时运行多个线程的程序。在计算机系统中,线程是调度运行的基本单位,它是进程中的一个实体,是CPU调度的最小单位。多线程技术可以有效提高程序的执行效率和资源利用率,同时也可以方便实现某些功能,比如界面的实时更新、网络数据的接收和处理等。关键字可以用来锁住一个对象,只有获得该对象的锁的线程才能执行被锁住的代码块。在多线程编程中,锁机制可以保证某些关键代码块同一时间只能被一个线程执行,从而保证数据的一致性和正确性。对象,这样只有一个线程可以获得该对象的锁,其他线程需要等待。关键字来实现锁机制。

2023-03-07 08:51:47 61

原创 反射的理解使用

这段代码演示了如何使用反射来获取一个类的属性和方法,并在运行时动态地调用它们。反射的核心是 Type 类型,它代表着一个 .NET 类型,可以获取该类型的各种信息,例如名称、基类、接口、属性、方法、构造函数等。在 C# 中,反射可以让我们在运行时动态地获取类型信息、访问属性、调用方法、构造对象等。GetTypeInfo():获取一个 Type 类型的 TypeInfo 对象,可以获取该类型的各种信息。需要注意的是,反射的使用会影响程序的性能,因此应该谨慎使用。Invoke():调用指定的方法。

2023-03-07 08:45:51 92

原创 SQL 中常用的约束类型

FOREIGN KEY 约束:用于指定一个列或一组列,该列或组合列的值必须存在于另一个表的主键中。PRIMARY KEY 约束:用于唯一标识表中每个记录的一列或一组列。主键约束强制要求该列的值在表中是唯一的,而且不能为 NULL。UNIQUE 约束:用于唯一标识列中的每个记录,但允许该列包含 NULL 值。唯一约束与主键约束类似,但唯一约束允许 NULL 值。CHECK 约束:用于限制列中的值必须符合特定的条件,这些条件由程序员指定。NOT NULL 约束:用于确保列中的值不能为空。

2023-03-06 15:55:47 560

原创 sql的建表 删表 创建索引 增删改查的操作

在 SQL 中,建表(CREATE TABLE)、删除表(DROP TABLE)、创建索引(CREATE INDEX)等操作都是 DDL(Data Definition Language,数据定义语言)命令,用于定义数据库中数据的结构和特性。需要注意的是,增删改查等操作属于 DML(Data Manipulation Language,数据操作语言)命令,用于操作数据库中的数据。删除表(DROP TABLE):用于删除数据库中的表格。一定要小心更新数据,避免更新不必要的数据或者更新错误的数据。

2023-03-06 15:45:29 1071

原创 委托(Delegate)和事件(Event)

委托是一种类型,它可以表示对一个或多个方法的引用,这些方法具有相同的参数列表和返回值类型。事件是一种特殊的委托,它允许类或对象向外界发布事件,其他对象可以订阅事件,当事件发生时,订阅者会收到通知并执行相应的操作。事件通常是在类中定义的,它可以由类内部的某些状态改变触发,也可以由外部条件引起。事件的实现需要使用委托类型,委托类型指定了事件处理程序的参数和返回值,事件处理程序需要与委托类型具有相同的参数列表和返回值类型。方法用来触发事件,如果事件被订阅了,就会执行相应的事件处理程序。,即定义的委托类型。

2023-03-06 15:34:01 82

原创 数据库主键和外键

外键是用于建立数据库表之间关系的字段,它关联了当前表中的数据和其他表中的数据。外键通常是指当前表中的某个字段,它指向另一个表中的主键。外键的作用是建立表与表之间的关联关系,通过外键可以实现表之间的数据查询、更新、删除等操作。主键的作用是确保表中每一条记录都具有唯一标识,方便查询、修改、删除等操作,同时也可以保证表中数据的完整性和正确性。总的来说,主键用于唯一标识数据库表中每一条记录,而外键用于建立表之间的关系,确保数据的一致性和完整性。数据库主键和外键是数据库中两个不同的概念,它们的作用和意义也有所不同。

2023-03-06 13:59:58 4158

原创 泛型 泛型类 泛型约束

在使用泛型类型参数的时候,我们有时需要对泛型类型参数进行一些限制,以保证类型参数能够正确地被使用。在上面的例子中,使用了泛型类型参数 T 来表示参数 a 和 b 的类型。通过泛型,我们可以定义一些类、接口或方法,这些类、接口或方法可以接受任意类型的参数,而不需要预先指定具体的类型。泛型类是一种可以具有类型参数的类,它可以通过指定类型参数来创建不同类型的实例。在 C# 中,使用尖括号()指定泛型参数,可以将任何类型指定为参数类型。对泛型类型参数的约束只是一种限制,实际上并不会改变泛型类型参数的类型。

2023-03-05 15:18:03 345

原创 Dictionary<TKey, TValue> Queue<T> Stack<T> 的使用

是 C# 中的一种集合类型,用于存储键值对。它是基于哈希表实现的,因此插入、查找、删除等操作的时间复杂度都是 O(1) 的。其中,TKey是键的类型,TValue是值的类型。每个键必须是唯一的,但值可以重复。的常用方法包括::添加指定的键值对到字典中。:从字典中删除指定的键值对。Clear():从字典中删除所有键值对。:判断字典中是否包含指定的键。:判断字典中是否包含指定的值。:尝试获取指定键对应的值,如果键不存在则返回 false。Keys:获取字典中所有键的集合。

2023-03-05 15:11:03 223

原创 c#中的常用类

除了以上列举的类,还有很多其他的常用类,如DateTime、TimeSpan、Guid等等。String:用于操作字符串的类,包含了很多字符串的方法,如比较、拼接、分割、替换等等。Math:用于数学计算的类,包含了各种数学计算的方法,如求平方根、取整、绝对值等等。MemoryStream:用于操作内存中的数据流的类,可以读写内存中的二进制数据。Array:用于存储同类型元素的集合类,可以快速访问其中的元素。List:用于存储元素的集合类,可以存储各种类型的数据。

2023-03-05 15:06:47 637

原创 匿名类 匿名对象

匿名类(Anonymous Class)是指没有名字的类,它在声明和实例化的同时进行,主要用于简化代码,常用于事件处理等场景。其中,var关键字表示让编译器自动推断出类型,Property1和Property2是匿名类的属性名,value1和value2是对应的属性值。输出结果为:。

2023-03-05 15:05:50 590

原创 重载和重写的方法

重写指子类重新定义了父类中已有的方法,方法名、参数列表和返回类型必须和父类中的一模一样,但是可以改变方法的实现。重载指在一个类中定义了多个方法,这些方法具有相同的名称但不同的参数列表,可以根据传入的参数的不同来执行不同的操作。方法名、参数列表和返回类型:重载方法名相同,参数列表和返回类型不同;重写方法名、参数列表和返回类型都必须与父类中的方法一样。重载(Overloading)和重写(Overriding)都是面向对象编程中的重要概念,它们的作用和用途不同。重写方法的调用取决于对象的实际类型。

2023-03-05 14:58:23 187

原创 自动推断类型,动态类型

在C#中,自动推断类型是指编译器根据变量的初始化值来自动推断变量的类型,而不需要显式地指定类型。自动推断类型是指使用 var 关键字声明变量,编译器会根据变量的初始值自动推断其类型。需要注意的是,动态类型应该尽可能地避免使用,因为它会破坏编译时类型检查的机制,增加代码的难度和维护成本。动态类型是指使用 dynamic 关键字声明变量,可以在运行时根据实际类型进行方法调用等操作。动态类型是指在运行时才确定变量的类型,而不是在编译时确定。在与其他语言交互时,需要使用动态类型来处理类型不一致的情况。

2023-03-04 10:31:27 111

原创 抽象类理解

这些不同类型的图形都有不同的属性和方法,但是也有一些共性,比如它们都有面积这个属性,都可以进行计算面积的方法。这样,通过抽象类的使用,可以使代码更加的清晰和灵活,同时也更符合面向对象的思想。抽象类是为了被继承而创建的,通常它们包含一个或多个抽象方法,这些方法是没有具体实现的,需要在派生类中进行实现。总之,当我们需要定义一些通用的基础类,并且希望子类实现一些具体的细节时,可以使用抽象类。注意,抽象类中的抽象方法、抽象属性和抽象事件都没有具体实现,需要在派生类中进行实现。是一个抽象类,包含了一个抽象方法。

2023-03-04 10:29:52 87

原创 接口的定义

实现接口时,必须实现接口中的所有成员,并且这些成员必须具有与接口中定义的成员相同的名称、返回类型和参数列表。接口(Interface)是一种定义行为的抽象类型,它定义了一个类或结构体应该具有的属性、方法和事件的标准集合,但并不实现它们的功能。它只是定义了一种合约,以指定要求接口的对象所应该具备的一组行为和能力。接口的主要作用是提供一种标准化的方式,以便不同的对象能够以相同的方式进行操作和互相通信。通过实现相同的接口,不同的对象之间可以进行类型转换,从而实现更灵活和高效的编程。方法,输出 "猫在吃鱼"。

2023-03-04 10:29:25 1218

原创 里式转换的用法

里式转换原则(Liskov Substitution Principle,LSP)是指在任何父类可以出现的地方,子类一定可以出现,而且替换为子类也不会产生任何错误或异常,通常简称为LSP原则。简单来说,就是子类能够替换掉它的父类,并且程序的行为不会发生变化。这就要求子类必须完全实现父类的方法,并且不能有额外的行为或副作用。LSP原则是面向对象编程的基本原则之一,它有助于提高程序的可靠性、可维护性和可扩展性。在实际开发中,我们要遵循LSP原则,尽量让子类的行为与父类一致,以便更好地维护和扩展程序。

2023-03-04 10:28:12 111

原创 虚方法的定义

通过使用虚方法,可以实现多态性,从而让代码更加灵活,易于扩展。在运行时,当使用基类类型的引用指向子类的对象时,如果该对象重写了基类中的虚方法,那么在调用该方法时,会自动调用子类中的方法,而不是调用基类中的方法。在C#中,虚方法是指可以在子类中被重写的方法,这种方法需要在父类中使用关键字。在子类中,如果想要重写父类中的虚方法,需要使用关键字。

2023-03-04 10:25:48 823

原创 访问修饰符

访问修饰符是用来控制类、类的成员和类之间的访问权限的关键字。使用访问修饰符可以帮助开发人员控制类成员的访问权限,避免程序中出现意外的错误。:可以在当前程序集中的任何位置以及当前类和子类中访问。:可以在当前类和子类中访问,其他地方不行。:只能在当前类中访问,其他地方都不行。:可以在当前程序集中的任何位置访问。:任何地方都可以访问,没有限制。

2023-03-04 10:24:52 39

原创 字符串有哪些常用操作

在 C# 中,字符串(string)是一个不可变对象,也就是说一旦字符串被创建后就不能被修改。这只是一些常用的字符串操作,实际上 C# 的字符串类提供了许多其他有用的方法,开发者可以根据具体需求选择合适的方法。方法可以将格式化字符串与一个或多个对象拼接在一起,生成一个新的字符串。方法可以将一个字符串按照指定的分隔符分割成多个子串。方法可以将一个字符串中的某个子串替换成另一个字符串。方法可以查找字符串中某个子串的位置。方法可以将多个字符串拼接在一起。方法可以截取一个字符串的一部分。

2023-03-04 10:23:10 381

原创 堆和栈的理解

栈(stack)是指一块连续的内存区域,用于存储局部变量、函数的参数、返回值以及函数调用时的临时数据。栈的操作是“后进先出”,即最后进入的数据最先出来。栈的大小是固定的,在程序运行时就已经分配好了,无法动态扩展。栈的分配和释放是由编译器自动完成的。堆(heap)是指一块不连续的内存区域,用于存储动态分配的数据,如new出来的对象。堆的大小不固定,可以动态扩展,但是分配和释放是由程序员自己负责的。在C#中,由于有垃圾回收机制,所以程序员不需要手动释放堆内存。函数来释放堆内存,否则会造成内存泄漏。

2023-03-04 10:22:23 238

原创 什么是析构函数

需要注意的是,C# 中只有类可以拥有析构函数,结构体不能拥有析构函数。另外,析构函数不能被继承或重载,因此每个类只能有一个析构函数。C# 中的析构函数是一个用于释放非托管资源和其他资源的特殊方法。它在对象销毁之前自动被调用,以便清理资源。在 C# 中,析构函数以。

2023-03-04 10:18:30 372

原创 构造方法的用法

在 C# 中,构造方法是用于初始化类的实例的方法。构造方法具有与类相同的名称,没有返回类型,并且可以具有参数。在创建类的新实例时,构造函数将自动被调用,以便对新创建的对象进行初始化。类的新实例时,将自动调用该构造函数,并使用传递给它的参数来初始化实例的。类具有一个构造函数,该函数具有两个参数。在构造函数的最后,使用。方法以打印实例的属性。

2023-03-04 10:17:21 95

原创 常量、枚举和结构体的作用

结构体(Struct):是指一种定义了一组相关变量的数据类型,它可以包含不同类型的数据成员,例如整数、字符、字符串等。结构体的作用是封装一些相关的数据项和功能,并且可以用于创建轻量级的对象,提高程序的执行效率。枚举(Enum):是指一种定义了一组命名常量的数据类型,常用于程序中某些特定的状态和选项,例如一周中的天数、一年中的月份、表示颜色的名称等。枚举的作用是在程序中定义一组具有相同意义的常量,使得程序更加可读、可维护和可扩展。常量的作用是提高代码的可读性、可维护性和可重用性,以及防止错误的发生。

2023-03-03 15:27:27 288

原创 c#中常量,枚举,结构体

结构体和类有很多相似之处,但结构体是值类型,而类是引用类型。这意味着当你传递结构体变量时,将会进行值复制,而不是引用复制。结构体是一种用户自定义的数据类型,可以组合不同类型的数据成员。结构体可以使用 struct 关键字定义。枚举是一种特殊类型,它将一组相关的常量组合在一起。枚举类型可以使用 enum 关键字定义。常量是指在程序运行期间不可修改的值,通常使用 const 关键字定义。在C#中,常量、枚举和结构体是常见的语言特性。

2023-03-03 15:26:30 146

原创 .net的两种交互方式

COM互操作(COM Interop):COM(Component Object Model)是Microsoft开发的一种二进制接口标准,用于支持多语言之间的交互。COM互操作是.NET框架在与传统COM组件进行交互时使用的一种技术。通过COM互操作,可以使用.NET代码来访问和调用COM组件,也可以使用COM客户端来访问和调用.NET组件。平台调用(Platform Invoke):平台调用是一种在.NET中调用非托管代码的技术。在.NET中,可以使用两种主要的交互方式,即COM互操作和平台调用。

2023-03-03 15:22:15 161

原创 .net 和c#的关系

NET和C#是密不可分的关系。C#是.NET Framework的主要编程语言之一,而.NET Framework是C#开发的主要平台之一。C#是一种面向对象的编程语言,由微软开发,旨在成为一种简单、现代、通用、类型安全的编程语言。C#可以编译为.NET Intermediate Language (IL)代码,然后在.NET Framework上运行。因此,C#和.NET Framework是紧密耦合的,它们相互依赖并共同发展。

2023-03-03 15:21:38 1319

原创 .net可以做什么

桌面应用程序:如 Windows 系统下的应用程序,可以使用 Windows 窗体(WinForms)或 WPF(Windows Presentation Foundation)来开发。Windows 服务:使用 .NET 框架可以编写 Windows 服务,用于在后台执行某些任务,如自动备份数据等。总的来说,.NET 可以用于开发各种类型的应用程序,涵盖了从桌面应用到 Web 应用再到移动应用等各个领域。移动应用程序:如使用 Xamarin 开发的跨平台移动应用程序。数据库应用程序:可以使用。

2023-03-03 15:17:05 2142

原创 .net发展史

Framework 4.7于2017年发布,支持Windows 7 SP1、Windows 8.1、Windows 10 Anniversary Update(版本1607)和Windows Server 2016操作系统。Framework 4.6于2015年发布,支持Windows Vista SP2、Windows 7 SP1、Windows 8、Windows 8.1和Windows 10操作系统。Framework 1.0于2002年发布,支持Windows 98、Me、2000和XP操作系统。

2023-03-03 15:16:26 556

原创 .net体系概述

除了.NET Framework和.NET Core之外,还有一些其他的.NET实现,如Mono和Xamarin等,它们提供了类似于.NET Framework和.NET Core的功能,但是主要用于移动应用程序和跨平台开发。.NET Core是.NET Framework的跨平台版本,可以在Windows、Linux和macOS等操作系统上运行。.NET Framework是.NET的基础,它提供了许多工具和类库,用于编写和执行.NET应用程序。和F#等,还提供了大量的类库和API,如。

2023-03-03 15:13:14 171

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除