.net 中的装箱与拆箱
.net中的类型被分成了两类:Value Type跟Reference Type,并且在其中设计了一个机制就是所有的类型都是继承自一个根类:System.Object,这个跟MFC中所有的类都继承自CObject好像有点类似。  ...
C#多线程详解(一) Thread.Join()的详解
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专...
C#的Replace函数,使用函数作为的参数需要注意
#的Replace函数,有关它的参数需要注意: 如果它的参数是一个表达式,系统会先计算表达式做预处理,再执行替换操作。 比如(GetNameByID为一个函数): String ...
Effective C#:利用using和try/finally语句来清理资源
在内存资源分配方面,.NET可以分为托管资源和非托管资源两部分。对于托管资源,.NET框架会负责进行垃圾回收的工作;对于非托管的资源,我们需要手动去释放资源。通常情况下,我们使用IDisposable...
Effective C#:尽量减少内存垃圾
虽然.NET提供了垃圾回收机制,可以对托管的资源进行管理,但是创建对象和销毁对象本身,也是要花费时间的,特别是对于引用类型来说,频繁的创建和销毁引用类型的对象,对性能来说,是非常不好的。 ...
Effective C#:尽量减少装箱和拆箱
装箱和拆箱存在的意义:值类型是数据的容器,它存储在堆栈上,不具备多态性,而.NET框架在整个对象层次的设计中,使用System.Object作为所有类型的基类,但是Obejct是引用类型,而作为值类型的基...
.NET强名称工具(Sn.exe)使用详解
语法格式:sn [-quiet][option [parameter(s)]] 参数及选项说明-c [csp] 将默认加密服务提供程序 (CSP) 设置为用于强名称签名。此设置应用于整台计算机。如果不指定 CSP 名称,则 Sn.exe 将清除当前设...
C#中的对象序列化
简介序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创...
C#类的继承详解
using System;namespace cSharpJichu{ class BaseClass { private string a = string.Empty; ...
C#操作压缩文件(rar,zip,gzip,winform/asp.net)
从.NET 2.0开始,微软提供了一个 System.IO.Compression 的NameSpace,下含有 GZipStream 和 DeflateStream,都具有压缩和解压功能,但是,确不支持 zip 和 rar等常用的压缩文件。因为rar是有版权的,不支持有情可原...
C#获取当前路径的方法集合
//获取当前进程的完整路径,包含文件名(进程名)。string str = this.GetType().Assembly.Location;result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)//获取新的 Process 组件并将其与当前活动的进程关联...
C#.Net调用非托管的DLL
本文来源:http://www.cnblogs.com/Charles2008/archive/2010/01/10/1643449.html 一、DLL介绍: 动态 链接库(DLL,即“Dynamic Link Library”)是MicrosoftWindows最重要的组成元素之一,打开windows系统文件夹,...
Effective C# Item9:理解几个相等判断之间的关系
C#中,有四种方式可以应用于“相等判断”,如下。代码public static bool ReferenceEquals( object left, object right );public static bool Equals( object left, object right );public virtual boo...
超级简单:使用Visual Studio自动产生存储过程
使用的工具: Microsoft Visual Studio Team System 2008(Express) SQL Server Express 2005第一步: 右击App_Code 文件夹,选择"Add New Item..." ,选择DataSet...
c#网络编程初探
我们知道C#和C++的差异之一,就是他本身没有类库,所使用的类库是.Net框架中的类库--.Net FrameWork SDK。在.Net FrameWork SDK中为网络编程提供了二个名称空间:"System.Net"和"System.Net.Sockets"。C#就是通...
c#.net实体类序列化方法 为什么要序列化
提到为了传递数据,需要把作为载体的实体类序列化,好好的找了一些序列化方面的介绍。感觉下面的这个介绍比较容易介绍! 1.什么是序列化 序列化是将对象状态转换为可保持或传输的格式的过程,在序列化过程...
C#基础——abstract
abstract修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中abstract修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实...
C#面向对象 基础概念25个
1.静态成员和非静态成员的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思?5.internal 修饰符起什么作用?6.sealed 修饰符是干什么的?7.override 和 overload 的区别?8.什么...
浅谈.NET下的多线程和并行计算:线程池基础下
这节我们按照线程池的核心思想来自定义一个简单的线程池:1) 池中使用的线程不少于一定数量,不多于一定数量2) 池中线程不够的时候创建,富裕的时候收回3) 任务排队,没有可用线程时,任务等待我们的目的只是...
C#中List与IList的区别
List<T>类:表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。IList<T>接口:表示可按照索引单独访问的一组对象。下面谈谈它们之间的区别:首先,List<T>是一个类,IList<T>是一...