C# interface学习经验浅谈
摘要:C# interface是把所需成员组合起来,以封装一定功能的集合。它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。接口不能直接实例化,即ICount ic=new iCount()是错的。接口不能包含成员的任何代码,只定义成员本身。接口成员的具体代码由实现接口的类提供。接口使用interface关键字进行声明。声明格式如下:C# interface成员的默认访问方式是public,在声明接口成员时不能出现abstract、public、protected、internal、private、virtual、override或static等关键字。接口成员可以是方法、属性、
阅读全文
posted @
2010-12-15 16:48
飞翔-方向 积累 沉淀
阅读(230)
推荐(0)
C#接口和抽象类的示例与比对
摘要:C#接口和抽象类经典示例.NET Framework是学习的最好资源,有意识的研究FCL是每个.NET程序员的必修课,关于接口和抽象类在FCL中的使用,我有以下的建议: FCL对集合类使用了基于接口的设计,所以请关注System.Collections中关于接口的设计实现; FCL对数据流相关类使用了基于抽象类的设计,所以请关注System.IO.Stream类的抽象类设计机制。 C#接口和抽象类Animal示例 下面的实例,本示例没有阐述抽象类和接口在设计模式中的应用,因为那将是另一篇有讨论价值的文本,本文着眼与概念和原则的把握,但是真正的应用来自于具体的需求规范。 设计结构如图所示: 1.
阅读全文
posted @
2010-12-15 16:31
飞翔-方向 积累 沉淀
阅读(953)
推荐(0)
C#中抽象类和接口的区别
摘要:一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。 二、接口: 接口是引用类型的,类似于类,和抽象类的相似之处有三点:1、不能实例化; 2、包含未实现的方法声明; 3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员); 另外,接口有如下特性:接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成
阅读全文
posted @
2010-12-15 16:13
飞翔-方向 积累 沉淀
阅读(135)
推荐(0)
object转换成字符串数组
摘要:object转字符串数组:string[] sa = (string[])obj; 首要的是Object确实能够转换成字符串数据才行.比如它是由一个字符串数据装箱过来的,或是可以表示成数组的装箱对象.否则,不可能被转换成一个字符串数组.
阅读全文
posted @
2010-12-14 11:34
飞翔-方向 积累 沉淀
阅读(2279)
推荐(0)
c#相对路径和系统路径
摘要:c#相对路径和系统路径//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。 string str5=Application.StartupPath; //可获得当前执行的exe的文件名。 string str1 =Process.GetCurrentProcess().MainModule.FileName; //获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。 备注 按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:\m
阅读全文
posted @
2010-12-02 10:23
飞翔-方向 积累 沉淀
阅读(179)
推荐(0)
Installutil.exe的位置和路径
摘要:安装程序工具 (Installutil.exe) 安装程序工具使您得以通过在执行指定程序集中的安装程序组件来安装和卸载服务器资源。此工具与 System.Configuration.Install 命名空间中的类一起工作。安转的位置和路径在:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe卸载的位置和路径在:C:\WINDO...
阅读全文
posted @
2010-12-01 14:33
飞翔-方向 积累 沉淀
阅读(24276)
推荐(1)
windows Service 之调试过程
摘要:原文摘自:http://www.cnblogs.com/peak-weng/archive/2008/05/30/1210538.html最近第一次用C#写了一个windows service ,其实实现的内容比较简单。就是启动remoting 连接,但是调试相对初次写windws service 的我来说,比较烦。没有经验,而且没办法像调试其他windows 程序一样设置断点,无法看到运行过程。...
阅读全文
posted @
2010-12-01 14:27
飞翔-方向 积累 沉淀
阅读(209)
推荐(0)
C# 泛型
摘要:首先我们来看一下泛型的基本概念。 最显著的一点就是它参数化了类型,把类型作为参数抽象出来,从而使我们在实际的运用当中能够更好的实现代码的重复利用,同时它提供了更强的类型安全,更高的效率,不过在约束方面,它只支持显示的约束,这样在灵活性方面就显得不是那么好了。我觉得它之所以能够提供更高的效率是因为泛型在实例化的时候采用了"on-demand"的模式,即按需实例化,发生在JIT(Just In Ti...
阅读全文
posted @
2010-11-23 15:12
飞翔-方向 积累 沉淀
阅读(174)
推荐(0)
浅谈C#泛型的用处
摘要:本文将介绍C#泛型的用处,C#泛型类在编译时,先生成中间代码IL,通用类型T只是一个占位符。灵活运用泛型能提高的大家的编程效率。为什么要使用C#泛型?为了了解这个问题,我们先看下面的代码,代码省略了一些内容,但功能是实现一个栈,这个栈只能处理int数据类型:上面代码运行的很好,但是,当我们需要一个栈来保存string类型时,该怎么办呢?很多人都会想到把上面的代码复制一份,把int改成string不...
阅读全文
posted @
2010-11-23 15:11
飞翔-方向 积累 沉淀
阅读(178)
推荐(0)
hashtable,dictionary 从原理上说说有什么异同,哪个性能高一些
摘要:hashtable里存的对象全部是object类型 ,所有对象存进去都被转成object类型,读取出来每次都需要转换类型,hashtable对存入的类型没有限制 , 因此在读取转换类型时容易出错, dictionary只能存入定义时指定的类型,而且不像hashtable会把类型转换成object,存取起来比前者方便,效率更高,因为不需要转换类型,所以不会出现hashtable里的转换类型错误而报出...
阅读全文
posted @
2010-11-22 20:41
飞翔-方向 积累 沉淀
阅读(3001)
推荐(0)
c#中Dictionary、ArrayList、Hashtable和数组 Array 的区别是什么?
摘要:C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小, 但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的 2.数组要声明元素的类型,集合类的元素类型却是object. 3....
阅读全文
posted @
2010-11-22 20:29
飞翔-方向 积累 沉淀
阅读(374)
推荐(0)
C#装箱和拆箱、理论概念
摘要:原文链接:http://edu.codepub.com/2010/0727/24604.php注意:在装箱的过程中,会新生成一个堆(托管堆)对象,他值类型的值复制到引用类型(堆对象)中,此后,值类型变量的更改,不会影响引用类型。在拆箱时,会生成一个新的堆栈类型变量,将引用类型的值复制到值类型(堆栈对象)中,此后新的值类型的变化,也不会影响原来的引用类型。1、 装箱和拆箱是一个抽象的概念2、 装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型与引用类型链接起来 例如: int val = 100;
阅读全文
posted @
2010-11-22 18:19
飞翔-方向 积累 沉淀
阅读(209)
推荐(0)
C#核心概念--装箱和拆箱(什么是装箱和拆箱)
摘要:装箱(boxing)和拆箱(unboxing)是C#类型系统的核心概念.是不同于C与C++的新概念!,通过装箱和拆箱操作,能够在值类型和引用类型中架起一做桥梁.换言之,可以轻松的实现值类型与引用类型的互相转换,装箱和拆箱能够统一考察系统,任何类型的值最终都可以按照对象进行处理. C#语言中的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte, shor...
阅读全文
posted @
2010-11-22 18:16
飞翔-方向 积累 沉淀
阅读(180)
推荐(0)
关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法
摘要:///<summary>///执行DataTable中的查询返回新的DataTable///</summary>///<paramname="dt">源数据DataTable</param>///<paramname="condition">查询条件</param>///<returns></returns&...
阅读全文
posted @
2010-10-13 15:25
飞翔-方向 积累 沉淀
阅读(747)
推荐(0)
将两个DataTable合并成一个Datatable
摘要:将两个DataTable合并成一个Datatable//两个结构一样的DT合并DataTable DataTable1 = new DataTable();DataTable DataTable2 = new DataTable();DataTable newDataTable = DataTable1.Clone();object[] obj = new object[newDataTable....
阅读全文
posted @
2010-10-13 15:21
飞翔-方向 积累 沉淀
阅读(1584)
推荐(0)
C#数据库访问类——DBAccess
摘要:using System;using System.Configuration;using System.Data;using System.Data.Common;using DBAccess;namespace DBAccess{ public class DbHelper { private static string dbProviderName = "System.Data.SqlCli...
阅读全文
posted @
2010-09-02 14:54
飞翔-方向 积累 沉淀
阅读(4786)
推荐(0)
using 语句用法
摘要:在net中有一个至关重要的关键字,那就是using using一般有着以下几种用法: 1、直接引入命名空间 a、using System ,这个是最常用的,就是using+命名空间,这样就可以直接使用命名空间中的类型,而免去了使用详细的命名空间 b、使用全限定名 不用使用using System;直接在程序中调用System.Console.WriteLine("Hello C#");...
阅读全文
posted @
2010-09-02 14:51
飞翔-方向 积累 沉淀
阅读(593)
推荐(0)