C#基础知识
文章平均质量分 78
qq_26054303
天道酬勤
展开
-
委托的异步回调
C#中Action,Function是两个委托的封装类。它们可是同步调用,也可以异步回调。所谓同步调用,就是在同一线程中执行,当委托方法在执行时,线程等待方法执行完再往下执行。异步回调,就是执行委托方法时,会另起一个线程去执行委托的方法,主线程会继续往下执行,当委托方法结束时,回调方法并通知主线程。下面我只介绍下异步回调:示例代码如下: public class Asyn原创 2015-07-14 11:23:13 · 432 阅读 · 0 评论 -
c# 逆变 协变的理解
c# 逆变 协变的理解原创 2015-06-16 14:54:29 · 788 阅读 · 0 评论 -
c# 多线程详解
线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。当程序中有多个线程运行,就称为多线程。多线程在windows form等编程是经常会用到的,它可以让UI主线程不阻塞,同时更有效的利用cpu资源,有更好的用户体验。但是当多个线程访问共享资源(比如静态变量)时,就需要考虑到线程同步的问题。比如当有一个线程对共享资源在写的时候,别的线程需要等原创 2015-07-16 10:56:22 · 633 阅读 · 0 评论 -
C#中的集合
大多数集合都在System.Collections,System.Collections.Generic两个命名空间。其中System.Collections.Generic专门用于泛型集合。 针对特定类型的集合类型位于System.Collections.Specialized;命名空间; 线程安全的集合类位于System.Collections.Conc原创 2015-05-22 14:50:10 · 435 阅读 · 0 评论 -
C#中的数组,ArrayList,List
我从事.net开发有4年了,工作之初一直对基础有巩固和加强,现在反而忘掉了不少基础知识,所以来回顾回顾知识点。 集合是比较重要,通用的工具类。 首先是数组Array,数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。 但是数组存在一些不足的地方。在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候必原创 2015-05-22 13:57:01 · 593 阅读 · 0 评论 -
C#的字节与流
计算机中文件有很多种,我们知道实际存在计算机中的都是二进制。这里我记录了通过流对文件的读取操作。首先在这里简单涉及下位,字节,字符的概念。位(bit)可以表示0或1,字节(byte)由8位组成(bit),可以表示0-255,256个不同的数据。字符,字符根据编码的不同有所区别。ANSI编码(本地化),它是支持本地的编码方式,不同 ANSI 编码之间互不兼容。在简体中文系统下原创 2016-11-03 13:49:56 · 1341 阅读 · 0 评论 -
数据库连接池
今天,在一本关于大型网站技术架构的书中看到了关于服务端性能优化方面的知识,有一方面是使用数据库连接池。突然想想自己在从事的编程工作中都是以实现业务为主,对数据访问层越来越无知了。所以抽时间看了下 Ado.Net的数据库连接池。在此分享下,希望对大家有帮助。 首先,程序创建数据库连接是比较耗时耗资源的工作,之所以会这样,是因为连接到数据库服务器需要经历几个漫长的过程:建立物理通道(原创 2015-12-03 14:57:28 · 395 阅读 · 0 评论 -
C# dll反混淆,反编译
C#的源代码通过编译,会变成中间语言,dll程序集。如果我们想看源代码,需要反编译。有些代码经过了混淆,就需要反混淆。我们先通过反编译软件Reflector,把dll中的代码反编译下。这里只要打开reflector,然后引入这个dll就行。经过混淆的代码,如下public static BaseSqlGenerator GetSqlGenerator(ModelConfigOpti原创 2015-09-29 13:35:32 · 6328 阅读 · 0 评论 -
C# 读取Excel到DataTable中
1. 先描述下碰到的问题,我的excel中有又一列,有数字和文本,任凭我在Excel中设置单元格格式也无济于事。通过"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"读取的时候,它会认为那一列为double型,所以文本内容为空,并且在我后面的转换会报原创 2015-09-08 16:02:44 · 3426 阅读 · 0 评论 -
C# 委托、事件
C#的委托可以把方法当做参数传递,方便我们回调方法,它的用处很多,为我们编程提供了很大的便利。方法定义public void EnglishGreeting(string name)委托定义public delegate void GreetingDelegate(string name);delegate 是委托的关键字,GreetingDelegate是一个委托类名,它原创 2015-05-25 11:43:57 · 334 阅读 · 0 评论