- 博客(30)
- 收藏
- 关注
原创 C#----volatile关键字
volatile 英文释义:易变的volatile 关键字在C#中,标识多线程对字段访问的顺序性和可操作性。适用于简单对象的同步特点。
2025-10-28 17:14:41
138
原创 C#---Expression(表达式)
Expression 是C# 高级编程,表达式的应用场景有 ORM框架:Entity Framework,Dapper等,规则引擎:动态业务规则评估, 依赖注入:高级DI容器实现,测试框架:模拟和断言, 动态查询构建:根据用户输入构建查询 等等。学习掌握Expression 对于构建动态逻辑的应用非常有帮助。
2025-09-11 16:19:44
1150
原创 C#---共享项目
共享项目是一组源代码文件的容器,它可以被其它项目添加共享项目引用,从而和其它项目编译在一起。共享项目不能像类库项目一样被编译成 .dll 和 exe 文件。它可以想象成一个共享代码的文件夹。其它项目引用 共享项目其它项目应用共享项目编译之后共享项目的代码被编译到项目dll里面特性共享项目 (Shared Project)类库项目 (Class Library)输出无输出dll输出dll 或 exe引用方式添加引用共享项目添加引用项目或程序集编译过程编译时。
2025-09-02 20:07:55
548
原创 C#----异步编程
传参的话可以在Thread.Start里面去传参,但是如果你希望它返回一个结果,那就有点麻烦了,你可能不得不借助全局变量,或者回调函数,同时你还需要在某些地方去阻塞,从而等待某个线程的结束,这样才能保证那个线程已经计算出了结果。一种使用场景是,在UI线程上调用一个方法,若这个方法阻塞了,则UI就会卡顿,这种情况下就需要使用异步。线程是一个比较底层的功能,所以提供了更底层的控制,比如线程锁,信号量等等,但是异步其实对于线程池的封装,这样就不能很好地进行底层的操作。
2025-09-02 17:07:31
1170
原创 C#--- 锁总结
学习的最全最佳的方式是微软文档微软官方解释是:提供一种机制,用于在不同线程之间的代码区域中实现相互排斥。1.2 特点同一时刻,只能有一个线程进入临界区lock(this) 锁定 当前实例对象,如果有多个类实例的话,lock锁定的只是当前类实例,对其它类实例无影响。lock(typeof(Model))锁定的是model类的所有实例。lock(obj)锁定的对象是全局的私有化静态变量。外部无法对该变量进行访问。lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入
2025-08-23 14:57:32
1158
原创 WPF---数据模版
数据模版就是数据的外衣,这个外衣的颜色,展示的内容和形式,可以由用户自定义。即数据的表象形式。指明Key的定义指明类的定义</Border>注意: 此 DataTemplate 会自动应用于所有 Task 对象。请注意,在这种情况下,x:Key 是隐式设置的。因此,如果为此 DataTemplate 分配 x:Key 值,你将替代隐式 x:Key,并且不会自动应用 DataTemplate。
2025-08-18 19:41:05
526
原创 记一个项目---突然一个线程中断的问题
在项目中,当项目开启的线程数不易过多,可以适当限制一下项目软件的工作线程数量,这样会节省资源,提升软件并发性能。每创建1000个线程 会占用1GB多的内存,内存占用非常大,会导致软件卡顿。
2025-08-11 13:25:36
284
原创 C#---yeild 关键字
这里循环使用 含有 Yeild rerun 方法的 被称为是 要东西Yeild return 方法 可以说是给东西要东西可以很多 但只能一个一个要 给东西 也只能一个一个给,只有你要了 我才给,不要就不给。这里有点像直男哈哈哈我这里有个想法 ,若我想越级要东西呢 不知程序和流程又是怎样的比如 我想先获取集合中的某个元素呢 执行结果又是如何呢。
2025-08-11 09:35:36
1026
原创 Visual Studio 生成前事件命令行
位置:Visual studio 生成前事件命令行在项目–属性–生成事件里面定义: 在Visual studio中,生成前事件(Build Events)允许你在编译项目之前执行自定义命令或脚本,这些命令会在项目编译之前运行,可以用来准备文件,设置环境或执行其它必要的预处理操作。
2025-05-16 20:52:31
1160
原创 记一次因为删除了Nuget包缓存导致的项目包还原不了的问题
因为我想改变项目某个dll的引用,更改某个dl的引用路径之后,dll属性的引用路径还是之前的引用路径,在项目的Bin里面生成的还是之前dll, 这让我非常头疼(我忘记了项目生成之后,有个文件夹(ref)里面的dll会通过项目生成之后复制到我项目的Pakges里面。)所以我听信了搜索删除了我的所有Nuget缓存。
2025-05-16 15:59:41
552
原创 C# -----通过操作系统命令编译.cs 生成dll
将所有想要生成dll 的.cs文件放置在Path 目录下, 调用以上方法,就可以生成MyName.dll 文件咯!这是一个Demo,更多复杂的内容和实现方法,比如生成.exe.生成项目文件等,需要再研究哦!
2024-11-22 10:00:24
366
原创 WPF----指针操作窗体以及指针创建内存访问内存数据
C# 可以说对指针的操作和使用非常少,这一块指针的使用一直对我来说是一个盲点。它不像C语言和C++ 等对指针的操作非常多。会用,首先得明白其原理和作用,然后实践。在学习和了解一个新的知识点的时候我一直是遵循这个步骤。首先一定得知其然,然后知其所以然。要先明白其概念和原理,因为概念和原理这个东西是抽象的,所以必须要加以实践,通过实践才能完全理解,这个时候达到一个会用的阶段。这个阶段是对这个新知识点的会用而已,要想学得通透还需要再回去反复琢磨概念和原理。这样才能上升到一个新的高度。
2024-11-16 16:29:33
1151
原创 C#----自定义转换器
这里列举一个例子,我们这里有Student类 和 Employ类 我想实现这两种数据类型的转换。这里有两个方法,第一个方法将Studnet 类型转换成Employee类型。用Static implicit 修饰 是代表隐式转换 返回的是Employee 实例就是 转换成Employee类型。用Static explicit 修饰代码的是显示转换,返回的是Student 实例就是转换成Student类型。
2024-11-15 19:49:24
470
原创 软件开发之-------软件闪退如何使用Window事件查看器,查看应用程序异常或者错误记录
今天Get 到一项新技能哦!在项目应用程序出现闪退的时候,如果项目中没有日志记录的话,可以利用Windows自带的日志记录功能,来查看软件闪退的异常原因,以便于排查问题。如何在自己的电脑查看应用程序出现闪退,报错的情况呢?
2024-11-15 19:17:18
7306
原创 WPF---认识一个功能强大的控件库AvalonEdit
介绍:AvalonEdit是sharpdevalve中使用的基于WPF的文本编辑器。类似的功能如下所示。扩展: 这里还可以实现类似于VisualStudio 这种可以编辑代码,运行代码的这样具有复杂功能的应用程序的编辑功能。今天发现一个比较好用的AvalonEdit 控件库。之前有遇见一个项目的软件有这种编辑代码的功能,一直比较好奇。文档地址:http://avalonedit.net/documentation/文档地址:http://avalonedit.net/documentation/
2024-11-15 17:27:37
802
原创 WPF_控件之DataGrid
单元格样式会覆盖DataGridCell 样式,如果想要设置选中的某一行不显示边框的话,需要设置选中的单元格Trigger样式Selected 不显示边框颜色,背景色。所有的颜色不显示。在实现过程中,出现点击某一个单元格会出现,空Cell 的情况,这种情况需要设置Datagrid属性C按Us二AddRows 的属性为False. 如果要设置不按照列排序,需要设置DataGrid属性CanUserSortColumns 为False。
2024-11-12 18:45:33
597
原创 C#---异步多线程不能对已完成的Task执行Start
在实际项目开发中,如果想要多次执行异步任务,不能直接定义次异步任务,因为一旦创建并执行此异步任务,再想要重新启动,不能用Start方法,这样会报错。采取的解决问题的方式是,使用委托包装异步任务,这样可以多次重复执行异步任务,不会报错。
2024-11-02 13:16:05
971
原创 WPF--DataGrid的ItemSource与其项源不一致而出错,问题记录及解决
出现这样的问题主要在于,在WPF 中 对UI 线程的调度不是很理解。通过这个小项目的编写和调式对Dispatcher 类 有了一定的认识和学习。当然了也对Prism 框架的依赖注入的使用和理解不到位,还需要多应用多练习和调式。通过这个项目我也获得了一些收获,对事件和委托的应用掌握得更熟练,对依赖注入其中的单例模式的应用有了一定的理解。
2024-07-02 19:56:28
1329
原创 WPF---绑定Binding
在.net framework 中 是消息驱动UI或者是事件驱动UI,他们统称** UI 驱动程序**。DataBinding 在WPF 中起到的作用,加工好的数据会通过这条高速公路送达用户界面加以展示,被用户修改的数据也会自动传回逻辑层,一旦数据被加工好又会被送到用户界面。。。程序的逻辑层就像一个强有力的引擎不停运转,用加工好的数据驱动程序的用户界面,以文字,图形,动画等形式把数据显示出来—这就是**数据驱动UI**
2024-05-25 22:37:11
2335
1
原创 WPF---深入理解控件模板
控件模板的定义控件模板的概述控件模板可以用来定义控件的外观、样式,还可以通过控件模板的触发器(ControlTemplate.triaggers)修改控件的行为、响应动画等。在WPF中 ,每个控件都是无外观的,这意味着我们完全可以自定义其可视元素的外观,但是不能修改其内部的行为,因为控件的行为已经被固定在控件的具体类中。在Winform 中,你会发现,控件的外观和行为都被封装在控件的具体类中,当我们想要修改按钮的边框弧度、或者修改控件本身一些细节的时候,我们需要修改外观的同时,把原来具备的所有行为
2024-05-24 10:35:10
222
原创 C# ---EventHandler事件传递数据
C#中传递数据的事件是 EventHandler,官方给的解释是表示当事件提供数据时处理事件的方法 ,这里我的理解是,这个事件可以传递数据,这个数据必须继承 EventArgs。
2024-05-23 19:10:26
1177
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅