
C#
文章平均质量分 61
C# 的学习
卷纸要用清风的
Environment.NewLine
展开
-
C# AppContext.BaseDirectory 应用程序的启动目录
命名空间:返回值: 应用程序启动时的可执行文件(.exe)所在目录的绝对路径。典型场景: 获取应用程序的安装目录(如配置文件、资源文件的路径)。命名空间:Assembly类)、System.IOPath类)返回值: 当前执行程序集(.exe或.dll)的物理路径的目录部分。典型场景:精确获取程序集的真实路径(无论是否被重定向或缓存)。命名空间:System.IO返回值: 进程的当前工作目录(可通过修改)。典型场景: 获取/设置应用程序运行时的上下文目录(如读取用户选择的文件)。特性数据源。原创 2025-04-22 15:04:46 · 727 阅读 · 0 评论 -
C# CancellationTokenSource CancellationToken Task.Run传入token 取消令牌
是C#中用于实现异步操作取消的核心类,它生成对象,该对象可以传递给异步方法,并在异步方法内部检查是否收到取消请求。原创 2025-03-24 17:40:37 · 479 阅读 · 0 评论 -
C# Channel
在C#中,提供了,适用于多任务间的数据传递。原创 2025-03-10 11:12:01 · 656 阅读 · 0 评论 -
C# BlockingCollection
是一个线程安全的集合,它提供了一种机制,允许一个或多个生产者线程将数据添加到集合中,同时允许一个或多个消费者线程从集合中取出数据。它内部封装了一个线程安全的集合(如或),并提供了阻塞和限制集合大小的功能。原创 2025-03-10 10:25:53 · 1282 阅读 · 0 评论 -
C# ArrayPool
在中, 是一个非常有用的工具类,主要用于高效地管理数组的分配和回收,以减少内存分配和垃圾回收的压力。它属于 命名空间,是和中引入的一个重要特性。 提供了一个共享的数组池,允许开发者从池中租用数组,并在使用完毕后归还数组。这种方式可以避免频繁创建和销毁数组,从而减少内存碎片化和垃圾回收的开销。它特别适用于需要频繁处理大量临时数组的场景,例如高性能计算、网络通信、数据流处理等。 提供了两种主要的使用方式: 提供了一个全局的共享数组池,可以通过 访问。这种方式简单易用,适用于大多数场景。例如:自定义数组池原创 2025-03-07 11:40:27 · 457 阅读 · 0 评论 -
C# is
is关键字在C#中是一个非常强大的工具,不仅可以用于类型检查,还可以结合模式匹配实现更复杂的逻辑。根据你的需求选择合适的用法即可。原创 2025-03-05 14:55:03 · 412 阅读 · 0 评论 -
C# 常用三方库
基本上选用的都是 分类中最流行的那个库NLOG 和 serilogStackify.com 简单入门文章 NLog 支持结构化log输出, 下面是两种写法:Nlog 可以直接将日志输出到richtextbox 文本框中, 非常实用.RestSharp 和 FlUrl, HttpClient 客户端 https://flurl.dev/Newtonsoft.Jsonhttps://github.com/edpollitt/Nerdle.AutoConfigDapper https://原创 2024-11-15 10:54:47 · 1152 阅读 · 0 评论 -
C# Winform 在高分变率显示器中窗体变模糊配置方式 125% 100% app.manifest dpiAware ClickOnce
安全性中启用再取消以生成文件。原创 2024-09-15 16:01:59 · 551 阅读 · 0 评论 -
C# TreeView
TreeView控件由TreeNode对象组成。每个TreeNode可以代表一个数据项,并且可以包含子节点。如果你需要更高级的自定义,可以使用DrawNode事件来自定义节点的绘制方式。请注意,这只是一个基本的示例,实际使用时你可能需要根据具体需求进行更复杂的操作和自定义。原创 2024-08-09 20:31:27 · 924 阅读 · 0 评论 -
C# Path
类的一些基本用法,它们可以帮助你处理文件和目录路径,确保你的应用程序能够正确地处理文件系统路径。如果你需要更具体的帮助或示例,请提供更多的上下文或问题。命名空间中的一个类,提供了用于操作文件路径的方法。用于组合多个路径部分,返回一个完整的路径字符串。返回指定路径的文件名部分。返回指定路径的目录信息。返回指定路径的绝对路径。检查路径是否包含扩展名。更改文件(夹)的扩展名。判断路径是否为根路径。原创 2024-07-12 19:58:53 · 569 阅读 · 0 评论 -
C# 构造函数依赖注入 使用out向外传递参数
参数是在方法调用时才创建的,它的作用域仅限于方法调用的上下文。这意味着,一旦构造函数。如果您希望在类的其他方法中修改这个标志,您需要将这个标志作为类的成员变量。设置为某个值,但是一旦构造函数执行完毕,您就无法再修改这个。下面是修改后的代码,其中。类的其他方法中访问这个。在构造函数中,您可以将。原创 2024-07-09 16:13:42 · 445 阅读 · 0 评论 -
C# MathNet
Vector在中,Vector是表示向量的类。Vector可以是列向量或行向量,具体取决于你如何创建它以及如何使用它。以下是一些创建和使用Vector原创 2024-07-04 19:31:30 · 1179 阅读 · 0 评论 -
C# 命名规范
三个字母以下的全大写,超过的首字母大写,三个字母的都行(原创 2024-07-02 22:41:19 · 498 阅读 · 0 评论 -
C# LINQ
LINQ提供了一种声明式的方式来查询和操作数据,使代码更简洁、更易于阅读和维护。它还支持类型安全和编译时检查,减少了运行时错误的可能性。原创 2024-07-01 20:07:58 · 254 阅读 · 0 评论 -
C# enum Enumeration Type 枚举
你可以使用enum关键字来定义枚举类型。枚举类型默认是基于int的,但你也可以指定不同的整型基础,如bytesbyteshortlong等。// 默认基于int的枚举Red,Green,Blue// 基于byte的枚举Small,Medium,Large枚举是C#中非常有用的语言特性,可以提高代码的可读性和可维护性。原创 2024-06-29 22:41:58 · 467 阅读 · 1 评论 -
C# 特性 Attribute 反射 Reflection 元数据 Metadata
在C#中,元数据(Metadata)是指与程序代码本身相关的数据,这些数据提供了代码的额外信息,但并不直接影响代码的执行。C#中的反射是一个强大的机制,允许程序在运行时检查和使用类型信息。特性的使用场景:特性用于实现多种功能,如标记过时的API、指定序列化行为、控制方法的安全性、提供本地化资源信息等。资源文件:程序集可以包含嵌入的资源文件,如图像、本地化字符串等,这些资源文件的元数据描述了资源的名称和类型。类型元数据:定义了类、结构体、接口、枚举等类型的特性,包括它们的成员(字段、属性、方法等)。原创 2024-06-29 22:48:06 · 764 阅读 · 0 评论 -
C# Opacity 不透明度
在 () 应用程序中,控件的透明度可以通过设置 属性来调整。 属性是一个介于 完全透明 到 完全不透明 之间的浮点数。 从版本开始支持透明度设置。设置按钮的透明度:动态改变控件的透明度:使用定时器改变透明度:在窗体加载时设置透明度:请注意 中的 属性只影响当前控件,不会影响到其子控件。如果你想要一个控件组或窗体的某些部分透明,你需要单独设置每个控件的 属性。当设置窗体的透明度时,窗体的标题栏和边框也会受到影响,这可能会影响用户的交互体验。因此,使用透明度时需要考虑到用户界面的整体原创 2024-06-29 16:54:32 · 785 阅读 · 0 评论 -
C# as
as在C#编程语言中,as关键字是一个一元运算符,用于执行引用类型的转换。它尝试将对象转换为指定的类型,如果转换失败,它不会抛出异常,而是返回null。这使得as运算符成为在不确定对象类型时进行类型转换的一种安全方式。原创 2024-06-28 16:18:26 · 469 阅读 · 0 评论 -
C# StringBuilder
使用是处理大量字符串操作时提高性能的一种有效方式。原创 2024-06-28 09:14:02 · 451 阅读 · 0 评论 -
C# 初始化的代码是放在Form的构造函数还是放在Form_Load
在C#中使用Form的构造函数或Form的Load事件。原创 2024-06-27 09:26:04 · 598 阅读 · 0 评论 -
C# Socket
Socket。原创 2024-06-26 19:12:41 · 745 阅读 · 0 评论 -
C# 单列模式
这将用于获取窗体的实例。原创 2024-06-25 12:01:34 · 297 阅读 · 0 评论 -
C# Chart 不间断补充
是一个图,我们通过不断创建新的图去覆盖老图达到动态效果。你可以在设计视图中拖拽,或者在代码中创建。中使用图表通常涉及到以下几个步骤。配置图表的基本属性,如标题、图例、轴标签等。的所有点,然后重新写点,然后更新整个。创建数据系列,并将数据绑定到图表上。运行应用程序,查看图表的显示效果。增加上下余量)使得图像一直在中间。首先,确保你的项目中已经添加了。命名空间来创建图表。在你的窗体上添加一个。上述代码为先清空某个。原创 2024-06-20 10:06:29 · 793 阅读 · 0 评论 -
C# EventHander
通过这个简易委托来生成一个事件,比如鼠标点击,然后这个事件发生了(鼠标按了),就会执行先前绑定到这个事件上的委托,委托可以广播。原创 2024-03-30 03:23:08 · 1575 阅读 · 0 评论 -
C# Task 包含 await ConfigureAwait CancellationTokenSource
Task类是.NET异步编程的基础,它提供了一种简单而强大的方式来编写和组织异步代码。await在C#中,await关键字用于异步编程,它有几个关键作用使用可以提高性能,特别是在高并发的环境下,因为它避免了不必要的上下文切换。然而,你应该谨慎使用它,确保不会因此而违反线程安全或UI更新的需求。是C#中的一个类,它提供了一种机制来发出取消请求。这个类与类一起使用,允许异步操作被取消。以下是的一些关键特性和用法:创建: 你可以创建一个的实例来开始一个取消操作。取消: 通过调用的Cancel。原创 2024-06-12 16:25:32 · 1208 阅读 · 2 评论 -
C# range
在C# 8.0及以上版本中,引入了一种新的语法特性,称为“范围”(range),它提供了一种方便的方式来处理数组、列表和其他集合的子集。以下是一些关于C#中range。原创 2024-06-11 14:53:27 · 1098 阅读 · 0 评论 -
C# 字段 属性 索引器
属性是C#中非常重要的特性,它们提供了一种安全和灵活的方式来访问和修改对象的状态。通过使用属性,你可以隐藏实现细节,同时提供对数据的控制。索引器是C#中一个强大的特性,它提供了一种自然和直观的方式来访问和操作对象的元素。通过使用索引器,你可以创建更加灵活和强大的数据结构。原创 2024-06-11 11:37:52 · 913 阅读 · 0 评论 -
C# 类或结构体的成员
类和结构体的主要区别在于它们在内存中的存储方式和继承能力。类是引用类型,可以继承其他类,而结构体是值类型,不能继承其他结构体或类。结构体在某些情况下可以提供更好的性能,但它们不支持继承和多态。原创 2024-06-10 22:22:53 · 541 阅读 · 0 评论 -
C# String
在C#中,String类型是一个非常常用的数据类型,用于表示文本数据。它是类的一个实例,位于System命名空间中。以下是一些关于C#中String。原创 2024-06-10 16:21:44 · 1063 阅读 · 0 评论 -
C# Parallel
在C#中,Parallel.For 是一个非常有用的功能,它允许将一个循环的迭代分布到多个线程上,以利用多核处理器的计算能力。异常处理:在 Parallel.For 中,如果在循环体中抛出异常,PLINQ 会捕获异常并包装在一个 AggregateException 中。在这个例子中,start 是循环的起始索引,end 是循环的结束索引(不包括在内)。线程安全:Parallel.For 内部使用多个线程,因此循环体中的代码必须是线程安全的。优先级:Parallel.For 不改变线程的优先级。原创 2024-06-07 18:48:54 · 452 阅读 · 0 评论 -
C# BindingSource 未完BindingNavigator
允许开发者自定义数据绑定逻辑,包括数据格式转换、数据过滤等。是数据绑定中一个非常强大的工具,它简化了数据与UI控件之间的交互,使得数据操作更加直观和方便。原创 2024-06-06 18:34:39 · 1044 阅读 · 0 评论 -
C# 运行时间
显然在处理这些数据的时候,有批量的就是比自己造轮子好使。原创 2024-06-06 17:42:12 · 131 阅读 · 0 评论 -
C# List
以下是一些常用的 操作:添加元素:使用 方法添加单个元素:使用 方法添加多个元素:插入元素:访问元素:移除元素:使用 方法移除一个元素:使用 方法移除指定索引的元素:使用 方法移除满足条件的所有元素:查找元素:使用 方法检查元素是否存在:使用 方法获取元素的索引:int index = numbers.IndexOf(7);排序:使用 方法对整个列表进行排序:使用 方法和一个比较器对列表进行自定义排序:反转列表:清空列表:获取列原创 2024-05-30 10:07:18 · 835 阅读 · 0 评论 -
C# 元组 Tuple
在C#中,元组(Tuple)是一种数据结构,它允许你将多个值组合成一个单一的对象。元组在处理多个返回值或临时组合几个相关数据时非常有用。从C# 7.0开始,元组得到了语言级别的支持,提供了一种轻量级的、不需要显式定义类型的组合数据的方式。原创 2024-05-29 22:16:47 · 2228 阅读 · 0 评论 -
C# TextBox生成时不选中文本
【代码】C# TextBox生成时不选中文本。原创 2024-05-29 11:33:26 · 252 阅读 · 0 评论 -
C# Dispatcher 管理线程与UI元素之间的通信 从非UI线程安全地更新UI元素
Dispatcher在C#中,Dispatcher是一个与WPF) 应用程序开发相关的类,它是命名空间的一部分。Dispatcher类的主要作用是管理线程与UI元素之间的通信。在WPF中,UI元素只能在创建它们的线程(通常是主线程或UI线程)上被访问和修改。Dispatcher提供了一种机制,允许从非UI线程安全地更新UI元素。原创 2024-05-27 14:42:31 · 762 阅读 · 0 评论 -
C# 拓展方法(涉及Linq)
要定义一个扩展方法,需要遵循以下规则:扩展方法必须在静态类中定义。扩展方法的第一个参数要使用this关键字,并且这个参数指定了方法将扩展哪个类型。第一个参数之后的参数是扩展方法所需要的其他参数。下面是一个简单的扩展方法的例子,这个方法为 int 类型添加了一个名为Square// 这是一个扩展方法,它扩展了 int 类型。原创 2024-05-25 19:41:18 · 494 阅读 · 0 评论 -
C# 语法糖
是一种不断进化的编程语言,随着时间的推移,微软为其添加了许多语法糖,以简化代码和提高开发效率。扩展方法允许你向现有类型“添加”方法,而无需修改其源代码或创建新的派生类型。异步编程允许你以同步代码的形式编写异步逻辑,简化了异步任务的编写和阅读。这允许编译器根据赋值推断变量的类型,减少了冗长的类型声明。(语言集成查询)提供了一种声明性的数据查询和操作方法。这允许你创建匿名类型的实例,而不需要定义具体的类型。版本的更新,未来可能会有更多的语法糖被引入。表达式提供了一种简洁的方式来编写匿名函数。原创 2024-05-25 19:39:29 · 481 阅读 · 0 评论 -
C# 数据绑定 未完
上述代码效果为点击ButtonLable的值++原创 2024-05-25 18:28:47 · 279 阅读 · 0 评论 -
C# 异步编程
Task。原创 2024-04-23 18:55:44 · 911 阅读 · 0 评论