![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#知识
yyc_ssasd
erp供应链
展开
-
C# 7.0 LINQ
LINQLINQ(Language Integrated Query)使用C#语言可以轻松的在不同数据源之间使用相同的语法进行查询。如果熟悉使用MSS数据库的话,就会感觉LINQ和SQL一样简单实用。准备数据我准备了一组数据,用于测试LINQ.定义一个Person类,定义了几个简单的属性信息,name/age/gender public class Person { ...原创 2020-03-03 16:20:57 · 222 阅读 · 0 评论 -
C# 7.0 LAMBDA表达式
lambdalambda表达式主要用于在委托方法中,主要是实现内联的方法体。参数lambda实现主要通过Func<>函数来实现。T1入参,最多应该可以支持16个。返回值是TResult。 /// <summary>Encapsulates a method that has two parameters and returns a value of the ty...原创 2020-03-03 13:26:15 · 246 阅读 · 0 评论 -
C# 7.0 Delegate委托
委托是将方法挂载到合适的方法列表上事件就是一种特殊的委托原创 2020-03-03 10:48:58 · 178 阅读 · 0 评论 -
C# 7.0 List
List学习了list的几个方法list.findIndex(Predict<T> match);下面这几个是源码反编译的方法。/// <summary>Represents the method that defines a set of criteria and determines whether the specified object meets tho...原创 2020-03-01 18:38:37 · 147 阅读 · 0 评论 -
C# 7.0 SPANS
SPANSSpan用于快速管理数组,可以直接管理数组中的元素,实现元素的填充,清理,计算,修改。int[] arr = new int[]{1,2,3,4,5,};Span<int> span1=new Span<int>(arr);span[1]=10;那么arr[1]的值是?答案是10。span.Fill(),对数组进行填充int[] arr = ne...原创 2020-02-29 15:54:18 · 142 阅读 · 0 评论 -
C# 7.0 Extension Method扩展方法
C# 7.0 Extension Method原创 2020-02-29 09:49:36 · 242 阅读 · 0 评论 -
C# 7.0类结构
class类类是一种引用类型,存放在堆上类中的只读属性ReadOnly只能从构造函数中赋值get set方法的变化 private string firstName; private string lastName; public string FirstName { set => firstNam...原创 2020-02-29 09:10:16 · 146 阅读 · 0 评论 -
使用SemaphoreSlim控制初始实例资源数量
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Threading;namespace threading{ class Program { ...原创 2020-01-16 15:07:15 · 218 阅读 · 0 评论 -
使用过Mustex进行互斥锁定
当某个线程访问某个资源时,如果有其他线程正在访问此资源,可以判定此资源互斥,不允许被再次访问。const string MutexName = "CSCOOK"; bool flag = false; Mutex mutex = new Mutex(false, MutexName, out flag); if (flag)...原创 2020-01-16 14:24:31 · 129 阅读 · 0 评论 -
c# LOCK
线程不安全lock进行线程锁定public abstract class CounterBase { public abstract void Increase(); public abstract void Decrease(); } public class Counter : CounterBase { publi...原创 2020-01-15 18:10:41 · 109 阅读 · 0 评论 -
使用System.Threading
使用System.Threading.Thread进行异步操作操作系统实现线程并提供各种非托管API来创建和管理线程。CLR封装这些非托管西城,在托管代码中使用System.Threading.Thread类来公开它们。const int printNum = 1000; static void Main(string[] args) { ...原创 2020-01-15 08:38:46 · 275 阅读 · 0 评论 -
C# 多线程处理基础
多线程处理术语CPU(中央处理器)或者核心/内核是实际执行程序的硬件单元。进程是某个程序当前正在执行的实例;操作系统的一项基本功能就是管理进程。每个进程都包含一个或多个线程。程序中可以使用System.Diagnostics命名空间的Process类的实例来访问进程。在语句和表达式的级别上,C#本质上就是在描述控制流。程序启动后,控制点像“光标”一样进入Main方法,并随着各种条件、循环、方...原创 2020-01-14 17:15:44 · 177 阅读 · 1 评论 -
dynamic动态编程
1、使用动态对象进行编程为什么用使用dynamic动态编程?从根本上来说,使用动态对象进行编程,开发人员可以通过动态调用机制对设想的操作进行编码。“运行时”会在程序执行时对这个机制进行解析,而不是由编译器在编译时验证和绑定。1.1使用dynamic调用反射反射的关键功能之一就是动态查找和调用特定类型的成员。dynamic data = "test a dynatimic"; ...原创 2020-01-13 18:22:55 · 367 阅读 · 0 评论 -
泛型的优点
C#中存在泛型,那泛型的优点有哪些?促进了类型安全。确保在参数化的类中,只有成员明确希望的数据leix类型才可使用。 编译时类型检查jian减少了在运行时发生InvalidCastException异常的几率 为泛型类成员使用值类型,不再造成到object[]的装箱转换。 缓解了代码膨胀。保持了具体类版本的优势,又没有具体类版本的开销 性能得以提高。一个原因不再需要从Object的强制...原创 2020-01-10 14:00:05 · 1262 阅读 · 0 评论 -
获取类中的私有变量
1目的当反射调用dll时,我们可能想要获取类中对应的私有变量,但是普通的调用是看不到私有变量,需要我们做进一步处理2实现命名空间using System.Reflection;public static class GetPrivateEx { public static T GetPrivateField<T>(object instance,str...原创 2020-01-10 11:13:57 · 937 阅读 · 0 评论 -
devexpress的GridView使用自定义过滤
devexpress的GridView使用自定义过滤使用dev控件对gridview进行自定义过滤设置。CriteriaOperator expr1 = new BinaryOperator("SUMVALUEFLAG", "0",BinaryOperatorType.Equal);CriteriaOperator expr3 = new BinaryOperator("SumValueFl...原创 2020-01-02 14:44:35 · 2784 阅读 · 2 评论 -
linq操作xml
使用linq查询xml文档我们之前都是通过对xml节点进行操作,现在已经支持linq像操作sql一样操作xml信息了<persons><person> <name>张三</name> <age>15</age> <sex>男</sex> </person>...原创 2020-01-01 22:05:43 · 219 阅读 · 0 评论 -
C#double类型变量比较
double类型变量怎么比较大小通过使用double.equals(doubale a,double b)进行比较时,发现两个数值不是相等。 图中sum为从0加0.1累计到1,按数学计算应该为1.0,但是在计算机中计算为0.9999999999,通过double.equals或者直接用==进行等量判断时,发现不相同。 这说明double类型不能直接进行等量判断,那么怎么进行比较呢?类型转换为原创 2017-10-11 09:00:41 · 6045 阅读 · 0 评论 -
变量名的力量
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-10-10 16:08:07 · 211 阅读 · 0 评论 -
C#事件-两个界面之间处理控件信息
C#事件事件和委托一直是C#中不太明白的东西,今天在项目上遇到一个问题。界面A中有个TreeView,点击按钮控件,弹出一个模糊查找界面B,在界面B中只有三个控件,分别是编号、ID和下一个的按钮。最终实现的要求是点击下一个,TrewView可以实现从头节点往下查找,直到找到需要的节点为止。当初不知道怎么实现了,后来翻书找到了可以用事件来实现。事件介绍事件是基于委托来实现的。委托是一种将方法当做参数来原创 2017-10-13 20:54:45 · 691 阅读 · 0 评论 -
C#反射调用
反射的含义反射是一个普通术语,描述了在运行过程中检查和处理程序元素的功能。反射可以动态的访问某个方法,并访问方法中的某个方法。反射的用途1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。 (2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。 (3转载 2017-10-16 20:26:37 · 2076 阅读 · 0 评论 -
List与ArraryList的区别
区别点List是一个泛型接口,可以实现各种类型的add和remove,不需要进行装箱和拆箱 ArraryList需要进行拆箱和装箱才能将值进行操作原创 2017-12-18 14:53:24 · 652 阅读 · 0 评论 -
C#生成dll并调用
之前编程一直使用的是现成的模板和dll,一直没有自己生成类库并调用。现在进行一下测试生成dll并调用。1、生成dll生成一个连接数据库的类,主要用于数据库的连接状态判断、获取数据返回dataset、进行数据的插入、删除等操作的方法。empty在程序中可以设置程序集名称也就是dll的名称以及输出类型。2、引用dll在新的解决方案中引用之前设原创 2017-05-25 16:58:42 · 628 阅读 · 0 评论