
C#知识
yyc_ssasd
erp供应链
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C# 7.0 LINQ
LINQ LINQ(Language Integrated Query)使用C#语言可以轻松的在不同数据源之间使用相同的语法进行查询。 如果熟悉使用MSS数据库的话,就会感觉LINQ和SQL一样简单实用。 准备数据 我准备了一组数据,用于测试LINQ. 定义一个Person类,定义了几个简单的属性信息,name/age/gender public class Person { ...原创 2020-03-03 16:20:57 · 280 阅读 · 0 评论 -
C# 7.0 LAMBDA表达式
lambda lambda表达式主要用于在委托方法中,主要是实现内联的方法体。 参数 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 · 279 阅读 · 0 评论 -
C# 7.0 Delegate委托
委托是将方法挂载到合适的方法列表上 事件就是一种特殊的委托原创 2020-03-03 10:48:58 · 217 阅读 · 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 · 181 阅读 · 0 评论 -
C# 7.0 SPANS
SPANS Span用于快速管理数组,可以直接管理数组中的元素,实现元素的填充,清理,计算,修改。 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 · 183 阅读 · 0 评论 -
C# 7.0 Extension Method扩展方法
C# 7.0 Extension Method原创 2020-02-29 09:49:36 · 293 阅读 · 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 · 177 阅读 · 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 · 279 阅读 · 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 · 167 阅读 · 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 · 139 阅读 · 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 · 309 阅读 · 0 评论 -
C# 多线程处理基础
多线程处理术语 CPU(中央处理器)或者核心/内核是实际执行程序的硬件单元。 进程是某个程序当前正在执行的实例;操作系统的一项基本功能就是管理进程。每个进程都包含一个或多个线程。程序中可以使用System.Diagnostics命名空间的Process类的实例来访问进程。 在语句和表达式的级别上,C#本质上就是在描述控制流。程序启动后,控制点像“光标”一样进入Main方法,并随着各种条件、循环、方...原创 2020-01-14 17:15:44 · 225 阅读 · 1 评论 -
dynamic动态编程
1、使用动态对象进行编程 为什么用使用dynamic动态编程? 从根本上来说,使用动态对象进行编程,开发人员可以通过动态调用机制对设想的操作进行编码。“运行时”会在程序执行时对这个机制进行解析,而不是由编译器在编译时验证和绑定。 1.1使用dynamic调用反射 反射的关键功能之一就是动态查找和调用特定类型的成员。 dynamic data = "test a dynatimic"; ...原创 2020-01-13 18:22:55 · 1319 阅读 · 0 评论 -
泛型的优点
C#中存在泛型,那泛型的优点有哪些? 促进了类型安全。确保在参数化的类中,只有成员明确希望的数据leix类型才可使用。 编译时类型检查jian减少了在运行时发生InvalidCastException异常的几率 为泛型类成员使用值类型,不再造成到object[]的装箱转换。 缓解了代码膨胀。保持了具体类版本的优势,又没有具体类版本的开销 性能得以提高。一个原因不再需要从Object的强制...原创 2020-01-10 14:00:05 · 1300 阅读 · 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 · 1016 阅读 · 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 · 3034 阅读 · 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 · 271 阅读 · 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 · 6222 阅读 · 0 评论 -
变量名的力量
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-10-10 16:08:07 · 250 阅读 · 0 评论 -
C#事件-两个界面之间处理控件信息
C#事件事件和委托一直是C#中不太明白的东西,今天在项目上遇到一个问题。界面A中有个TreeView,点击按钮控件,弹出一个模糊查找界面B,在界面B中只有三个控件,分别是编号、ID和下一个的按钮。最终实现的要求是点击下一个,TrewView可以实现从头节点往下查找,直到找到需要的节点为止。当初不知道怎么实现了,后来翻书找到了可以用事件来实现。事件介绍事件是基于委托来实现的。委托是一种将方法当做参数来原创 2017-10-13 20:54:45 · 746 阅读 · 0 评论 -
C#反射调用
反射的含义反射是一个普通术语,描述了在运行过程中检查和处理程序元素的功能。反射可以动态的访问某个方法,并访问方法中的某个方法。反射的用途1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。 (2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。 (3转载 2017-10-16 20:26:37 · 2201 阅读 · 0 评论 -
List与ArraryList的区别
区别点List是一个泛型接口,可以实现各种类型的add和remove,不需要进行装箱和拆箱 ArraryList需要进行拆箱和装箱才能将值进行操作原创 2017-12-18 14:53:24 · 693 阅读 · 0 评论 -
C#生成dll并调用
之前编程一直使用的是现成的模板和dll,一直没有自己生成类库并调用。现在进行一下测试生成dll并调用。 1、生成dll 生成一个连接数据库的类,主要用于数据库的连接状态判断、获取数据返回dataset、进行数据的插入、删除等操作的方法。 empty 在程序中可以设置程序集名称也就是dll的名称以及输出类型。 2、引用dll 在新的解决方案中引用之前设原创 2017-05-25 16:58:42 · 709 阅读 · 0 评论