自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 泛型的使用

使用泛型可以高效地编写可重用和类型安全的代码,因为它允许在编译时检查类型,并在运行时提供类型安全。总的来说,泛型在C#中的使用场景非常广泛,可以用于各种类型的操作和处理,提高代码的可重用性和可读性,减少类型转换的代码,并且可以在编译时进行类型检查。类型参数:泛型类型可以包含一个或多个类型参数,用于指定在实例化类时将使用的具体类型。这样,我们可以在不同的地方使用相同的代码,仅需改变参数的类型。集合类的灵活性:C#中的集合类例如List、Dictionary等都是使用泛型实现的,可以方便地处理不同类型的数据。

2024-02-16 23:39:35 342 1

原创 C#索引器的使用

我们可以使用索引器的set访问器来设置数组中特定位置的值,使用get访问器来获取数组中特定位置的值。C#索引器是一种特殊的属性(Property),C#索引器的主要使用场合是在自定义的集合类或数据结构中,通过索引来访问和操作集合内的元素。C#索引器是一种特殊的属性,它允许使用类似数组的语法来访问类的实例的成员。索引器不支持可变参数:C#中的索引器不允许使用可变参数,即不能在索引器中使用"params"关键字。总之,C#索引器是一种方便的方式来访问类的实例中的成员,使其具有类似数组的行为。

2024-02-16 22:53:58 811 1

原创 网络通信的五层结构

网络通信的5层结构是指OSI模型(Open Systems Interconnection model),包括以下各层:

2024-01-24 22:58:51 419

原创 C#多线程的使用 及优缺点

提高程序的并发性:使用多线程可以同时执行多个任务,提高程序的并发性。特别是对于耗时的操作,使用多线程可以避免阻塞主线程。调试困难:多线程程序的调试比单线程程序更加困难,因为多线程程序的执行顺序和并发性使得问题复现和定位都更加困难。资源消耗较大:每个线程都需要占用一定的内存资源,如果线程数过多,可能会引起系统资源的浪费。提高程序的响应速度:通过多线程处理耗时操作,可以让主线程保持响应,提高程序的用户体验。充分利用多核处理器:多线程可以充分利用多核处理器的资源,提高程序的性能。

2024-01-24 22:51:21 376

原创 C#Socket的使用

下面是一个简单的示例,演示了如何创建一个服务器和客户端,并在它们之间传输数据。运行服务器端代码后,再运行一个或多个客户端实例,就可以在客户端和服务器之间进行数据通信了。

2024-01-24 22:45:36 501

原创 C#常用的控件及其常用的属性

C#常用的控件及其常用的属性有:

2024-01-22 20:57:59 347

原创 C# .NET 序列化与反序列实现 、 细节

序列化版本控制:如果在序列化后修改了类的结构,比如添加或删除了字段或属性,可以使用[OptionalField]属性来处理版本控制。远程通信:在分布式系统中,可以使用序列化将对象转换为可以在网络上传输的格式。反射和元数据:序列化可以将对象的结构信息和元数据保存到文件中,以便在运行时进行反射,动态创建对象或进行其他元数据操作。总之,C#序列化需要注意以上细节,以确保对象可以正确地被序列化和反序列化,并确保安全性和性能。序列化容器类:如果一个类包含其他可序列化的对象,需要确保这些包含的对象也是可序列化的。

2024-01-21 22:32:31 580

原创 C#文件的压缩与解压的实现

如果需要处理更多压缩和解压选项,如密码保护、处理文件夹等,可以参考GZipStream类和其他相关类的更多用法和选项。在C#中,可以使用System.IO.Compression命名空间中的GZipStream类来实现文件的压缩与解压缩。来创建解压缩流,并将压缩文件复制到解压缩流中。最后,解压缩流将解压缩的数据写入解压缩文件。来创建压缩流,并将源文件复制到压缩流中。最后,压缩流将压缩的数据写入压缩文件。方法接受一个压缩文件路径和一个解压缩文件路径作为参数。方法接受一个源文件路径和一个压缩文件路径作为参数。

2024-01-21 20:42:10 395

原创 C#使用文件流写入数据

在C#中,可以使用文件流来写入数据。文件流可以用来读写二进制数据或者文本数据。方法来写入数据到文件流中。在这个例子中,将字符串"data"转换为字节数组,并写入文件流中。指定文件名为"file.txt",并指定打开文件的模式为。,这意味着如果文件已经存在,则会被覆盖。需要注意的是,在使用文件流之后,应该始终使用。语句来确保文件流被正确释放和关闭。类创建了一个文件流对象。在上面的例子中,使用。

2024-01-21 19:55:30 454

原创 C#使用文件流读取数据

方法将字节数组转换为字符串,如果文件是文本文件的话。最后,可以将读取的数据输出到控制台。方法来读取文件数据,通过指定字节数组的起始索引和要读取的字节数来确定读取的范围。语句来确保在使用完毕后及时释放资源。同时,还需要捕获和处理可能发生的异常。在上述示例中,首先指定要读取的文件路径,然后使用。然后,创建一个字节数组,用于存储读取的数据。类创建一个文件流对象。模式,打开文件以供读取。接口的实现,因此需要使用。2.使用using实现。

2024-01-21 19:33:32 449

原创 C#中两个常用的泛型集合List<T>与Dictionary<TKey,Tvalue>

可以通过键来快速查找对应的值,并且可以使用内置的方法操作字典,如添加、删除、更新等。如果你需要根据给定的键来查找对应的值,那么Dictionary<Key,Value>是一个很好的选择。总之,List适用于按照顺序存储一组元素,并且需要快速随机访问的场景,而Dictionary<Key,Value>适用于需要通过键来查找元素的场景。根据需求可以选择适合的方法来使用和操作集合中的数据。在C#中,List和Dictionary<Tkey, Tvalue>是两种常用的集合类,用于存储和操作数据。

2024-01-21 19:07:21 353

原创 C#中using的使用

语句可以在使用完字符流后自动关闭流并释放资源,避免资源泄漏。它的作用是在代码块执行完毕后,调用实现了。对象读取文件的每一行内容,然后在使用完毕后,方法,从而释放资源。语句会负责关闭流并释放资源。代码块中,我们可以使用。

2024-01-21 13:53:58 417

原创 C#依赖注入3种实现方法

这些是C#中常见的依赖注入方法,每种方法都有其特定的用法和适用场景。根据项目的需求和设计风格,可以选择最合适的方法来实现依赖注入。在C#中,有多种实现依赖注入的方法。

2024-01-21 09:19:57 910

原创 C#实现多态的三种方法

在上述示例中,Animal类是基类,Cat和Dog类是Animal类的子类。基类Animal中定义了一个虚方法MakeSound,而子类Cat和Dog通过重写这个方法来实现自己的特定行为。基类Animal中定义了一个虚方法MakeSound,而子类Cat和Dog通过重写这个方法来实现自己的特定行为。在C#中,接口实现多态是通过接口实现类的方式实现的。通过创建不同类型的对象,可以调用相应类型的方法,实现多态。通过创建不同类型的对象,可以调用相应类型的方法,实现多态。来修饰方法,表示该方法是对基类方法的重写。

2024-01-20 16:37:25 1348

原创 C#简单工厂实现

在主函数中,我们通过简单工厂创建了具体产品A和B,并调用其操作方法。方法根据传入的产品类型来创建具体产品,并返回抽象产品接口。在上述示例中,抽象产品类。定义了产品的操作方法。实现了抽象产品接口。

2024-01-20 16:15:46 323

原创 C#单例模式的简单实现

目的:C#中的单例设计模式是一种创建对象的设计模式,确保一个类只有一个实例,并提供一个全局访问点。C#实现单例设计模式。

2024-01-20 16:09:47 494

空空如也

空空如也

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

TA关注的人

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