随笔分类 -  C#

摘要:基于事件的编程才是最好的编程方法,是符合人类思考的和行为的一种方法在以往的面向过程的编程(C语言)中,程序运行到哪一步然后就是你操作的时候也就是说是人去迁就机器,去适应机器而现在不一样,现在C#等语言都是面向对象的编程方法,都是按对象来编程这样的好处也就不多说了总之基于事件也就是相当于面向对象的一种好处,页面上有很多按钮,每个按钮都是对象然而每个按钮也有相应的事件,你无论先点哪个都有相关的代码来运... 阅读全文
posted @ 2010-10-03 16:24 春哥也编程 阅读(2115) 评论(0) 推荐(0)
摘要:泛型是 C# 2.0 的最强大的功能。通过泛型可以定义类型安全的数据结构,而无须使用实际的数据类型。 这能够显著提高性能并得到更高质量的代码,因为您可以重用数据处理算法,而无须复制类型特定的代码。 在概念上,泛型类似于 C++ 模板,但是在实现和功能方面存在明显差异。本文讨论泛型处理的问题空间、 它们的实现方式、该编程模型的好处,以及独特的创新(例如,约束、一般方法和委托以及一般继承)。 泛型编程... 阅读全文
posted @ 2010-10-03 16:17 春哥也编程 阅读(638) 评论(1) 推荐(0)
摘要:结构清晰,类之间通信简单易懂,扩展性好,提高复用性等等。 在我开发过程中,我都用到了面向接口编程,可是除了觉得麻烦,真的看不到什么好处。spring中定义service接口,dao接口,除了多写个接口外都看到有什么好处。而且实际开发中我们公司压根就没用到接口编程,也没觉得有什么不妥。 阅读全文
posted @ 2010-10-03 16:15 春哥也编程 阅读(489) 评论(0) 推荐(0)
摘要:首先,使用接口编程是为了提高程序的可维护性和可伸缩性。如果你在一个类里使用组合调用另一个类时,你直接使用另一个具体的类,这样的话你就不这个类写死了,以后假如业务逻辑变化时,你就必须修改原代码。你如果写的是一个接口,当业务逻辑变化时你只需写一个新的类让他实现这个接口。 第二,你还要用类似spring这样的东西,实现松耦合,利用配置文件修改程序。比如要完成一个登录功能: 我先写dao层,其中用到了... 阅读全文
posted @ 2010-10-03 16:14 春哥也编程 阅读(319) 评论(0) 推荐(0)
摘要:问题:抽象类和接口的区别是什么? 回答: 抽象类和几口是Java面向对象体系当中非常重要的两个元素,在语法和使用方法都有很多的区别,下面我就从这两个方面来回答这个问题: 第一:接口和抽象类在语法上的区别主要体现在以下的几个方面: a)一个类可以实现多个接口,二除了Object之外,一个类只能有一个父类; b)接口当中所有的方法都是抽象方法,并且默认为public权限,而抽象类当中可以有抽象方法,也... 阅读全文
posted @ 2010-10-03 16:10 春哥也编程 阅读(247) 评论(0) 推荐(0)
摘要:从性能上讲:Socket>Remoting(TCP通道)>WebService。如果你是Windows进程间通讯的话,WebService可以不用考虑。如果两个进程在不同机器的话,可以看情况使用Socket或Remoting。如果是本机进程间通讯的话,那就用Remoting(IPC通道,.NET 2.0提供,1.1里没有)。不过Remoting也要序列化和反序列化,所以在数据生成方面R... 阅读全文
posted @ 2010-10-03 16:04 春哥也编程 阅读(1462) 评论(0) 推荐(0)
摘要:首先,重写和隐藏是发生在两个类中的,而重载可以发生在一个类中。重写的概念就是顾名思义了:重新写一遍;方法名、参数及返回值是一模一样的,可能实现的过程不一样,为什么要重写?因为原来的方法不够perfect 或者不够strong,或者达不到开发者的实际应用要求。重载是当多个方法享有相同的名字,但是这些方法的参数不同,或者是参数的个数不同,或者是参数类型不同时。就叫方法的重载要注意的是:返回类型不能用来... 阅读全文
posted @ 2010-10-02 09:32 春哥也编程 阅读(300) 评论(0) 推荐(0)
摘要:重载 overloadingjava的重载是指在一个类中同一个函数以多种不同的形态出现,即函数的参数个数或者类型不一样。例子 System.out.println(); 下面简称SOPSOP(String str)SOP(int number)SOP(char ch)SOP(double num).................................这就是重载的效果覆盖(重写) ove... 阅读全文
posted @ 2010-10-02 09:31 春哥也编程 阅读(1036) 评论(0) 推荐(0)
摘要:继承是子类获得父类的成员,重写是继承后重新实现父类的方法。重载是在一个类里一系列参数不同名字相同的方法。多态则是为了避免在父类里大量重载引起代码臃肿且难于维护。网上看到一个有趣的说法是:继承是子类使用父类的方法,而多态则是父类使用子类的方法。下面的例子包含了这四种实现:class Triangle extends Shape {public int getSides() { return 3;}... 阅读全文
posted @ 2010-10-02 09:26 春哥也编程 阅读(606) 评论(0) 推荐(0)
摘要:做分词组件时,有网友提出采用Hashtable 数据结构查找字符串效率较低,建议改为Dictionary,其理由是采用Hashtable 时Key值是object 会触发装箱和拆箱动作,一直对这种说法表示怀疑,因为我理解只有值类型和引用类型通过object 互转时才会发生装箱和查询,引用类型之间强制转换不应发生装箱和拆箱,而Dictionary 泛型实际上底层还是调用的Hashtable,所以效率... 阅读全文
posted @ 2010-10-02 09:19 春哥也编程 阅读(843) 评论(0) 推荐(0)
摘要:做分词组件时,有网友提出采用Hashtable 数据结构查找字符串效率较低,建议改为Dictionary,其理由是采用Hashtable 时Key值是object 会触发装箱和拆箱动作,一直对这种说法表示怀疑,因为我理解只有值类型和引用类型通过object 互转时才会发生装箱和查询,引用类型之间强制转换不应发生装箱和拆箱,而Dictionary 泛型实际上底层还是调用的Hashtable,所以效率... 阅读全文
posted @ 2010-10-02 09:19 春哥也编程 阅读(961) 评论(0) 推荐(0)
摘要:由于 Hashtable 和 Dictionary 同时存在, 在使用场景上必然存在选择性, 并不任何时刻都能相互替代.[1] 单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.[2] 多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减.[3] Dictionary 有按插入顺序排列数据的特性 (注: 但当调用 阅读全文
posted @ 2010-10-02 09:17 春哥也编程 阅读(20960) 评论(2) 推荐(1)
摘要:Array和List都属于顺序表。 Array是一段连续的存储结构int[] i=new int[3]i其实记录的是数组的首地址,而i[1]其实相当于在i的地址的基础上加上1个整数的地址偏移,然后再取这块地址中的值。 List则是不连续的存储结构,List的每个节点都有着一个Next属性,这个属性则记录着他的下一个节点的地址。 也就是说当我们想找第100个节点的时候,他还是需要从第一个节点,然后做99次Next操作,才能找到list[99]节点。在查找一个元素时时分别生成以下IL码Array: IL_0020: ldloc.0 IL_0021: ldc.i4.3 IL_0022: ldelem 阅读全文
posted @ 2010-10-02 09:08 春哥也编程 阅读(14384) 评论(0) 推荐(0)
摘要:一,C# array数组的用法范例:type[] typename=new type[size]; 如int[] a=new int[2];string[] str=new string[5];实事上我们平常是用int[],string[]...的,此时我们已经创建一个Array数组,只不过我们平常没有这种意识而已.(1):type数据类型不能缺;且要统一,而不能是如 int[] a=new Ar... 阅读全文
posted @ 2010-10-02 08:58 春哥也编程 阅读(1419) 评论(0) 推荐(0)
摘要:string str1 =Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。 string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。 //备注按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:\mySubDirectory”)。 string str3=Directory.Ge 阅读全文
posted @ 2010-09-24 11:08 春哥也编程 阅读(283) 评论(0) 推荐(0)
摘要:此程序利用 WinRAR 程序对文件进行压缩,命令行语法可参考WinRAR中文帮助。 ///<summary> ///利用WinRAR进行压缩 ///</summary> ///<paramname="path">将要被压缩的文件夹(绝对路径)</param> ///<paramname="rarPath">压缩后的.rar的存放目录(绝... 阅读全文
posted @ 2010-09-24 11:07 春哥也编程 阅读(7998) 评论(1) 推荐(2)
摘要:注意:是GZIP在.Net Framework 2.0 中添加了System.IO.Compression 类来实现对文件的压缩/解压(GZipStream方法),下面我们来看一个简单的例子.Code1:[代码]用例:1.压缩[代码]2.解压[代码]由代码和使用例子我们可以了解到,Code1 只是支持单个文本文件的压缩/解压, 代码非常简单,但是却实际上却没什么用途,功能太少,只是让你有个初步的认... 阅读全文
posted @ 2010-09-24 11:06 春哥也编程 阅读(4151) 评论(1) 推荐(2)
摘要:System.IO命名空间中的类为托管应用程序提供文件以及其他形式的输入输出。托管i/o的基本构件是流,而流是字节导向的数据的抽象表示。流通过System.IO.Stream类表示. System.IO.FileStream允许将文件作为流访问; System.IO.MemoryStream允许将内存块作为流进行访问以下为读写文件的示例先引用命名空间 using System.IO;以下是源代码n... 阅读全文
posted @ 2010-09-24 11:04 春哥也编程 阅读(3380) 评论(0) 推荐(0)
摘要:IIS 6.0Configuring the IIS server results in properties being set at appropriate locations (or keys) in the metabase according to the rules in the schema. Most of these properties can be set using IIS... 阅读全文
posted @ 2010-09-23 20:27 春哥也编程 阅读(402) 评论(0) 推荐(0)
摘要:DirectoryEntry是.Net给我们的一大礼物,他的名字我们就知道他的功能--目录入口。使用过ADSI的人都知道操作IIS,WinNT这些时,我们还需要提供他们的Path,操作IIS时,这个Path的格式为:IIS://ComputerName/Service/Website/DirectoryComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是localh... 阅读全文
posted @ 2010-09-23 20:25 春哥也编程 阅读(1498) 评论(0) 推荐(0)